Base de datos con java
desde aplicaciones web con la
tecnología JDBC
Bases de Datos en aplicaciones
• Aplicación que procese información à base
de datos.
• Normalmente se utilizan bases de datos
relacionales.
• SQL: Lenguaje estándar para acceder a una
base datos.
2
Acceder a una base de datos
desde una aplicación
• Cómo puede enviar una aplicación sentencias SQL
auna BD.
• Interfaz procedural para ejecutar sentencias SQL.
• X/Open CLI (ISO 9075-3 “Call level interface”).
• ODBC es variante de Microsoft del X/Open CLI
(implementada en lenguaje C).
• La filosofía de estas APIs es que permitan acceder
de la misma forma a distintas BD.
3
JDBC
• Es un interfaz orientado a objetos de Java
para SQL.
• Se utiliza para enviar sentencias SQL a unsistema gestor de BD (DBMS).
• Con JDBC tenemos que continuar
escribiendo las sentencias SQL.
• No añade ni quita potencia al SQL.
4
Arquitectura JDBC
• La filosofía de JDBC es proporcionar transparencia al
desarrollador frente al gestor de BD.
• JDBC utiliza un Gestor de Controladores que hace de
interfaz con el controlador específico de la BD.
Aplicación Java
Driver Manager de JDBCControlador
Oracle
SGBD
Oracle BD
Controlador
JDBC-ODBC
Access BD
Controlador
DB2
BD
SGBD
DB2
5
Clases e interfaces JDBC
• La especificación JDBC incluye 8 interfaces y 10
clases, en el paquete estándar java.sql.
• Podemos dividirlos en los siguientes grupos:
– Nucleo de JDBC, interfaces y clases que todos los
controladores deben implementar.
– Extensiones alpaquete java.lang, extensiones para
SQL.
– Extensiones al paquete java.util, son extensiones a
java.util.Date.
– Metadatos para SQL, permiten examinar
dinámicamente las propiedades de BD y controladores.
6
Núcleo de JDBC
• Estos interfaces se utilizarán el 90% de las veces que trabajemos con
una BD.
Driver
Connection
Statement
ResultSet
DriverManagerPreparedStatement
DriverPropertyInfo
ResultSetMetaData
CallableStatement
7
Invocar una consulta SQL
• Vamos a estudiar un escenario en el que
realizaremos una consulta sobre una BD con
JDBC.
• Mediante el seguimiento de un diagrama de
secuencia veremos las clases en funcionamiento.
• Cliente, representa a la aplicación Java donde
implementamos la consulta.
• Un buen ejerciciosería ir escribiendo el programa
a la vez que vamos viendo cada una de las fases.
8
Configuración de la conexión
con base de datos
• Antes de conectar con la base de datos
y trabajar con ella debemos tener en
cuenta dos cuestiones:
– Registrar un controlador.
– Convenciones de nombres para la base de
datos.
9
Carga de un controlador (I)
• Determinados controladores requeriránla
instalación y configuración de software
específico en el cliente. Ejemplo: el origen
ODBC o la fuente de datos nativa.
• Otros controladores son simplemente una
clase Java y bastará que la máquina virtual
de Java las pueda localizar mediante el
classpath.
10
Carga de un controlador (y II)
• Dos alternativas:
– Utilizar una propiedad del sistema
(jdbc.drivers).
– Cargar la clasede forma explícita con la
llamada Class.forName().
• La propia clase llamará al método registerDriver()
de la clase DriverManager, que dejará registrado el
controlador para utilizarlo posteriormente.
• Consultar que los controladores registrados con
DriverManager.getDrivers().
11
Código fuente de carga del
controlador de la BD
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch (ClassNotFoundException e)
{
System.out.println("Error en la carga del
driver JDBC");
return;
}
12
Cliente
:
DriverManager
:
Connection
getConnection( )
Conexión a la BD
13
Obtener conexión BD
Abrir una conexión
• Previamente habremos registrado el controlador.
• DriverManager.getConnection(url).
• El parámetro imprescindible es la url de la base de...
Regístrate para leer el documento completo.