1. connection
INTEGRANTES:
FIORELLA AGUILAR ISUIZA
RAUL AARON DELGADO ESPARRAGA
Docente : Ingeniero Marco Aurelio Porro Chulli
Asignatura : Desarrollo de Software I
Ciclo : V
Tema : Connection
2. Para conectarse a cualquier servidor de base de datos hace falta una aplicación
que sirva como enlace. A ese tipo de clases se les llama conectores. En el caso de
MySQL, debe descargarse de su sitio web. En dicha descarga, se obtiene todo el
código fuente de las clases necesarias pero sólo se requiere el archivo mysql-
connector-java.jar.
Conexión y uso de bases de datos en lenguaje Java El acceso a bases de datos
desde Java se realiza mediante el estándar JDBC (Java data base conectivity), que
permite un acceso uniforme a las bases de datos independientemente del SGBD.
De esta manera, las aplicaciones escritas en Java no necesitan conocer las
especificaciones de un SGBD en particular, basta con comprender el
funcionamiento de JDBC. Cada SGBD que quiera utilizarse con JDBC debe contar
con un adaptador o controlador.
3. CREACIÓN DE SENTENCIAS
El objeto Connection permite establecer una conexión a
una base de datos. Para ejecutar instrucciones SQL y
procesar los resultados de las mismas, se debe hacer uso
de un objetoStatement.
Los objetos Statement envían comandos SQL a la base
de datos, y pueden ser de cualquiera de los tipos
siguientes:
4. Un comando de definición de datos como CREATE TABLE o CREATE INDEX.
· Un comando de manipulación de datos como INSERT, DELETE o UPDATE.
· Un sentencia SELECT para consulta de datos.
Un comando de manipulación de datos devuelve un contador con el número de filas
(registros) afectados, o modificados, mientras una instrucción SELECT devuelve un
conjunto de registros denominado conjunto de resultados (result set). La interfaz
Statement no tiene un constructor , sin embargo, podemos obtener un objeto
Statement al invocar el método createStatement() de un objeto Connection.
conn = DriverManager.getConnection(url,login,pasword);
Statement stmt = conn.createStatement()
5. Es recomendable que se cierren los objetos Connection y Statement
que se hayan creado cuando ya no se necesiten. Lo que sucede es
que cuando en una aplicación en Java se están usando recursos
externos, como es el caso del acceso a bases de datos con el API
JDBC, el recolector de basura de Java (garbage collector) no tiene
manera de conocer cuál es el estado de esos recursos, y por lo tanto,
no es capaz de liberarlos en el caso de que ya no sean útiles. Lo que
ocurre en estos casos es que se pueden quedar almacenados en
memoria grandes cantidades de recursos relacionados con la
aplicación de bases de datos que se está ejecutando. Es por esto que
se recomienda que se cierren de manera explícita los objetos
Connection y Statement..
6. PROPIEDADES
Con las colecciones, los métodos y las propiedades de un objeto Connection, se puede hacer lo siguiente:
Configurar la conexión antes de abrirla con las
propiedades ConnectionString, ConnectionTimeout y Mode. ConnectionString es la propiedad
predeterminada del objeto Connection.
Establecer la propiedad CursorLocation en el cliente para llamar al Servicio de cursores de Microsoft para
OLE DB, que admite actualizaciones por lotes.
Establecer la base de datos predeterminada para la conexión con la propiedad DefaultDatabase.
Establecer el nivel de aislamiento para las transacciones abiertas en la conexión con la
propiedad IsolationLevel.
Especificar un proveedor OLE DB con la propiedad Provider.
Establecer y, posteriormente, interrumpir la conexión física con el origen de datos con los
métodos Open y Close.
Ejecutar un comando en la conexión con el método Execute y configurar la ejecución con la
propiedad CommandTimeout.
Administrar transacciones en la conexión abierta, incluidas las transacciones anidadas si el proveedor las
admite, con los métodos BeginTrans, CommitTrans y RollbackTrans y la propiedad Attributes.
Examinar los errores devueltos desde el origen de datos con la colección Errors.
Leer la versión de la implementación de ADO utilizada con la propiedad Version.
7. Puede crear objetos Connection independientemente de cualquier otro objeto definido anteriormente.
Puede ejecutar comandos o procedimientos almacenados como si fueran métodos nativos en el
objeto Connection, como se ilustra más adelante.
Ejecutar un comando como un método nativo de un objeto Connection
Para ejecutar un comando, asígnele un nombre mediante la propiedad Name del objeto Command.
Establezca la propiedadActiveConnection del objeto Command en la conexión. A continuación, emita
una instrucción en la que se use el nombre del comando como si fuera un método en el
objeto Connection, seguido de los parámetros que desee, y seguido después de un
objeto Recordset si se devuelven filas. Establezca las propiedades Recordset para personalizar el
objeto Recordset resultante. Por ejemplo:
8. Ejecutar un procedimiento como un método nativo de un objeto Connection
Para ejecutar un procedimiento almacenado, emita una instrucción en la que el nombre
del procedimiento almacenado se utilice como si fuera un método en el
objeto Connection, seguido de los parámetros que desee. ADO realizará un "ejercicio
de adivinación" de los tipos de parámetro. Por ejemplo:
9. EJEMPLO
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import oracle.ucp.jdbc.PoolDataSourceFactory;
import oracle.ucp.jdbc.PoolDataSource;
public class BasicConnectionExample {
public static void main(String args[]) throws
SQLException {
try
{
PoolDataSource pds =
PoolDataSourceFactory.getPoolDataSource();
//condiciones de la conexión.
pds.setConnectionFactoryClassName("oracle.jdbc.p
ool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//localhost:1521/XE")
;
pds.setUser("<user>");
pds.setPassword("<password>");
pds.setInitialPoolSize(5);
Connection conn = pds.getConnection();
System.out.println("nConnection obtained from " +
"UniversalConnectionPooln");
Statement stmt = conn.createStatement ();
stmt.execute("select * from foo");
//Se cierra la conexion.
conn.close();
conn=null;
System.out.println("Connection returned to the " +
"UniversalConnectionPooln");
}
catch(SQLException e)
{
System.out.println("BasicConnectionExample - " +
"main()-SQLException occurred : "
+ e.getMessage());
}
}
}
10. 1. Con el método forname() de Class, se crea una asociación entre nuestra clase Conector y eldriver de
conexión MySQL. Si no lo logra, el error es capturado con la ClassNotFoundException
2. La conexión se realiza con el método getConnection() de DriverManager; si el servidor no está
disponible o refuta la solicitud, la conexión no se consuma y se dispara la SQLException
3. El método dameConexion(), es el que se encargará de poner a disposición la conexión para las
clases que la requieran; mientras que cierraConexión() la cancela. La ejecución de los objetos de la
librería sql exigen ser ejecutados dentro de un bloque try…catch, por eso está así la única línea que
necesaria para el terminar la conexión.
4. Por supuesto, se debe tener acceso a una base de datos de un servidor MySQL mediante un nombre
de usuario y una contraseña. Estos cuatro datos: base, servidor, usuario y password, los recibe como
parámetro el constructor y luego los usa el método getConnetion() de la claseDriverManager.