JDBC, es el componente JAVA que permite a las aplicaciones JDBC interactuar con motores de base de datos relacionales. Se divide en dos paquetes
Para acceder a una base de datos es necesario de un driver. El API JDBC facilita programar el acceso a BD sin que se tenga en cuenta a que Servidor nos dirigimos (Oracle, Sybase, Informix, etc.).
Modelo JDBC
Drivers JDBC
Existen Drivers JDBC para la mayora de motores de bases de datos. Existen 4 tipos de Drivers: Nativos, 100% Java, JDBC-ODBC, JDBC Network Driver.
Driver Java
Protocolo especfico del Proveedor DriverJDBC (Java Puro) Base de Datos Cdigo JAVA
Es un driver Java Puro, que habla directamente con la base de datos. Es el mtodo ms eficiente de acceso a bases de datos. No requiere de ninguna librera adicional ni de la instalacin de un middleware, con lo cual es de deployment ms simple. La mayora de los fabricantes, proveen drivers JDBC de tipo 4 para sus bases de datos.
La API JDBC
El Api ofrece las clases e interfaces para: Establecer una conexin a una base de datos. Ejecutar una consulta. Procesar los resultados.
Operaciones bsicas
1. 2. 3. 4. 5. 6.
Establecer conexin. Crear sentencia. Ejecutar sentencia. Procesar resultados. Finalizar sentencia. Cerrar conexin.
Clases a usar
DriverManager: Carga, elige drivers Driver: Se conecta con la base de datos actual Connection: Una serie de sentencias SQL hacia y desde la BD Statement: Un sentencia SQL ResultSet: Los registros obtenidos de la sentencia SQL
url de la BD
Driver
Importante
Se debe agregar el Driver de la Base de datos al proyecto web. Para Oracle, el Driver es: ojdbc14.jar (ojdbc6.jar), Se encuentra en la ruta: C:\oraclexe\app\oracle\product\10.2.0\server \jdbc\lib El driver se agrega en la carpeta lib (libraries) del proyecto
Practiquemos !
STATEMENT
Clase bsica que sirve para enviar comando SQL A LA Bases de datos Statement st = conexion.createStatement(); Mtodos Principales. Execute (String sql): ejecuta una instruccin sql de parmetro. Puede retornar mltiples resultados. ExecuteUpDate (String sql): ejecuta una instruccin sql de parametro usualmente se usa para INSERT, UPDATE, or DELETE
Ejemplo
PreparedStatement
Una sentencia preparada (PreparedStatement) es un tipo de sentencia que mejora la performance de las consultas. A diferencia de las sentencias tradicionales cuando se crean requieren de la sentencia SQL como argumento del constructor. Esta sentencia es enviada al motor de BD para su compilacin y cuando se ejecuta el motor de BD la corre sin previa compilacin. Las sentencias preparadas manejan parmetros, con lo cual pueden ejecutarse muchas veces con distintos parmetros.
Ejemplo: PreparedStatement p_sent = miConexion.prepareStatement(SELECT * FROM Empleados WHERE edad = ?) p_sent.setInt(1, 55); //Se setea el parmetro p_sent.executeQuery(); //Retorna objeto de tipo ResultSet
Result Set
Clase que controla la recuperacin de los registros. Representa un cursor (iterador) sobre los resultados
Movimiento: mtodos next() y previous() Inicialmente el cursor est posicionado antes del primer registro.
Result Set
Acceso a una columna derivada, ej. calcular la media Cuando hay columnas con los mismos nombres (join)
Mtodos de acceso (getXXX). Es conveniente leer los datos de izquierda a derecha. Para averiguar si se ha ledo un nulo: wasNull()
Mtodos de acceso
Ejemplo
Es importante cerrar/liberar las conexiones una vez que ya no son usadas. De esta manera el objeto Connection ser marcado para ser recolectado por el Garbage Collector y, adems teniendo en cuenta que la cantidad de conexiones disponibles a una BD es limitada, es importante cerrar las conexiones que no son ms usadas. El mtodo destroy() es el apropiado para llevar a cabo esta accin.