Programación B
Programación Orientada a Objetos
Ingeniería en Informática
Universidad FASTA
Ing. Luis Buffoni
Lic. Claudio Gea
Java – Conexión a Bases de Datos (JDBC)
JDBC: Java DataBase Connectivity
Provee una forma de comunicarse con bases de datos sin
necesidad de escribir código adicional para las diferentes
plataformas.
Packages java.sql y java.text .
Un driver JDBC es lo que usa la JVM para traducir las
instrucciones generales de JDBC a instrucciones específicas
para cada base de datos en particular.
Universidad FASTA – Programación B 2
JDBC: Java DataBase Connectivity
Los drivers son clases Java cargadas en tiempo de
ejecución.
String driver = "org.gjt.mm.mysql.Driver";
try {
Class.forName(driver);
} catch(ClassNotFoundException cnfe) {
System.err.println("No existe clase: " + driver);
}
JSE6 incorpora JDBC 4.0 API (paquete javax.sql) que
extiende la funcionalidad, y es parte de JavaEE.
JSE7 incorpora JDBC 4.1 API: uso de try-with-resources y
RowSet 1.1 (RowSetFactory y RowSetProvider)
Universidad FASTA – Programación B 3
JDBC: Pasos para consultar una BD
1. Cargar el driver JDBC
2. Definir una conexión (Connection) de tipo URL, host, port y
base de datos.
3. Establecer la conexión.
4. Crear un objeto de tipo sentencia (Statement).
5. Ejecutar la sentencia (consulta o actualizacion).
6. Procesar el resultado (ResultSet)
7. Cerrar la conexión
Universidad FASTA – Programación B 4
JDBC: Ejemplo
Universidad FASTA – Programación B 5
DataSource como mejor alternativa a
DriverManager (JSE6)
Más portable: no se debe “hardcodear” el nombre del driver o
la URL JDBC en la aplicación.
Código más simple: métodos para adaptar conexiones (ej:
serverName)
Pool automático de conexiones con transacciones
distribuidas.
com.dbaccess.BasicDataSource ds =
new com.dbaccess.BasicDataSource();
ds.setServerName("grinder");
ds.setDatabaseName("CUSTOMER_ACCOUNTS");
ds.setDescription("Accounts database for billing");
Universidad FASTA – Programación B 6
try-with-resources (JSE7)
El try-with-resources declara 1 o más recursos (objeto que debe ser
cerrado por el programa luego de ser usado) que son cerrados
automáticamente al finalizar el try-with. Los recursos deben
implementar java.lang.AutoCloseable.
Los bloques catch y finally (si existen) se ejecutan luego del cierre de
los recursos.
Universidad FASTA – Programación B 7