Sei sulla pagina 1di 18

JDBC

Java DataBase Connectivity

Introduccin
JDBC es una API, formada por
conjunto de clases e interfaces en
el lenguaje de programacin Java,
para ejecutar sentencias SQL.
Ofrece un estndar de conexin a
cualquier base de datos disponible
en el mercado.
Permite obtener los datos en forma
fcil y cmoda en ambientes
cliente-servidor a travs de
Internet/Intranet.

Qu hace JDBC?
Establece una conexin a una
base de datos.
Enva sentencias SQL.
Procesa los resultados de estas
sentencias.

Arquitectura JDBC
Arquitectura normal

Puente JDBC-ODBC
Aplicaciones Java

Aplicaciones Java
JDBC API
JDBC API
Adm. de controladores JDBC
Adm. de controladores JDBC
Puente JDBC/ODBC
Controlador
JDBC

DB

Controlador
JDBC

Adm. de controladoresODBC
C. ODBC

C. ODBC

DB

DB

DB

Primer ejemplo bsico


Connection con = DriverManager.getConnection (
"jdbc:odbc:nombre", "login",
"password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c
FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}

JDBC usa una URL para


especificar la base de datos.

JDBC vs. ODBC


Se puede usar ODBC desde Java,
pero el puente JDBC-ODBC ayuda
bastante.
ODBC tiene una interfaz tipo C
rompiendo el esquema de
seguridad, robustez e
implementacin de Java.
ODBC mezcla funciones simple y
complejas.
Los controladores de ODBC deben
ser instalados en cada cliente.

Modelos de acceso a BD
De 2 capas
Aplicacin
Java

Cliente

JDBC
Protocolo
BD

DBMS

Servidor
BD

La aplicacin habla directamente


con la base de datos.
Controlador JDBC se comunica
con el sistema especfico que
maneja la base de datos.
La base de datos puede estar en
otra mquina, con lo que el cliente
se comunica por red. Esta es la
configuracin llamada
cliente/servidor.

Modelos de acceso a BD
De 3 capas

Cliente (GUI)

Applet en Java o
Navegador HTML
Llamadas HTTP,
RMI,CORBA

Aplicacin
Java

Servidor

JDBC
Protocolo
BD

DBMS

Servidor
BD

Los comandos son enviados a la


capa intermedia de servicios, la
cual enva sentencias SQL a la
base de datos. sta las procesa y
enva los resultados de vuelta a la
capa intermedia, para luego ser
enviados al cliente.
Permite un control de acceso y de
actualizacin.
Provee ventajas de performance.

Categoras de los controladores JDBC


Puente JDBC-ODBC.
Parte API Nativa-Parte Java. Se
convierte las llamadas JDBC al
sistema de la Base de datos.
JDBC-Red. Es slo Java. Las
llamadas JDBC son convertidas a
un protocolo de red independiente
del sistema de la base de datos.
Este protocolo es convertido en un
servidor
Protocolo Nativo. Es slo Java. Se
usa un protocolo de red con la BD.

Conexin
Un objeto Connection representa
una conexin a una base de datos.
Una sesin incluye las sentencias
SQL que son ejecutadas y los
resultados de stas.
Establecer la conexin:
DriverManager.getConnection
La clase DriverManager intenta
ubicar el controlador que pueda
conectarse a la base de datos
representada en la URL.

...Conexin
Sintxis de una URL JDBC:
jdbc:<subprotocolo>:<subnombre>
<subprotocolo> es el nombre del
controlador o del mecanismo de
conexin. Ejemplo: odbc.
<subnombre> es la identificacin
de la base de datos. El formato
varia segn el controlador
especificado. Ejemplo:
//servidor:puerto/etc

Enviando sentencias SQL


JDBC permite que se escriba
cualquier tipo de sentencia SQL.
Aunque sta fuera dependiente de
la base de datos slo se correra el
riesgo de incompatibilidad al
cambiar de base de datos.
Llamadas a procedimientos
almacenados
Formatos de fecha

...Enviando sentencias SQL


JDBC provee 3 clases:
Statement: Este objeto es usado
para enviar sentecias SQL
simples. Es creado por el mtodo
createStatement.
PreparedStatement: Este objeto
es usado para sentencias que
requieren uno o ms parmetros.
La sentencia es precompilada y
guardada para uso futuro.
CallableStatement: Es usado
para ejecutar procedimientos
almacenados.

Transacciones
Una transaccin consiste en una o
ms sentencias que han sido
ejecutadas y luego confirmadas
(commit) o deshechas (rolled back)
Auto-commit est predeterminado.
Si Auto-commit est desactivado
se debe usar los mtodos commit
o rollback explcitamente.

Procesando respuestas
Las respuestas a las sentencias
SQL se reciben en el objeto
ResultSet que mantiene las filas.
Este objeto provee el acceso a los
datos de esas filas a travs de un
conjunto de mtodos get, los
cuales, a su vez, permiten el
acceso a cada columna de estas
filas.

Cargando la clase del controlador JDBC


Ejemplo:
Class.forName(empresa.db.Driver");

Esto crea una instancia del


controlador y llama al mtodo
DriverManager.registerDriver
registrando este controlador en la
lista de controladores disponibles
para conexiones.

Ejemplo de sentencia
Connection con = DriverManager.getConnection (
"jdbc:odbc:nombre", "login",
"password");
PreparedStatement pstmt = con.prepareStatement(
UPDATE tabla1 SET m=? WHERE x=?);
pstmt.setString(1, "Hola");
for (int i = 0; i < 10; i++) {
pstmt.setInt(2, i);
int rowCount = pstmt.executeUpdate();
}

Primer ejemplo bsico


Connection con = DriverManager.getConnection (
"jdbc:odbc:nombre", "login",
"password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c
FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}

Potrebbero piacerti anche