|
JDBC
|
|
Felipe
Fernández
Yerko Muñoz
|
|
Qué es
JDBC?
JDBC es usado para
enviar comandos SQL hacia una base de datos relacional, que puede ser
Oracle, Infomix, SyBase, etc.
|
|
Qué hace
JDBC?
Establece una conexión con una BD
Envía sentencias SQL
Procesa los resultados
Connection con =
DriverManager.getConnection ( "jdbc:odbc:wombat", "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
es una API de bajo nivel para API´s de alto nivel
Una integración
de SQL hacia Java, es decir que las sentencias SQL se puedan mezclar con
Java, por ejemplo, que una variable de Java pueda ser usada en una sentencia
SQL para recibir o dar valores.
Un mapeo directo
de las tablas de la BD hacia las clases de Java, donde cala fila de la
tabla se convierte en una instancia de la clase, y donde cada columna
se corresponde a un atrubuto de esa instancia.
|
|
JDBC v/s ODBC
y otras API´s
ODBC no es apropiado para usar directamente con Java por que usa una interfaz
en C.
Una traducción literal de la API ODBC en C, no es deseable. Por
ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos.
ODBC es muy difícil de aprender , hace una mezcla de acciones simples
y avanzadas.
Una API como JDBC es necesario para poder desarrollar una solución
puramente de Java
|
|
Modelos de dos
capas y tres capas
|
 |
 |
|
Conformación
de SQL
El SQL es el idioma normal por acceder las bases de datos correlativas.
Una dificultad es que aunque la mayoría del DBMSs (los Sistemas
de Dirección de Base de datos) use un formulario normal de SQL
para la funcionalidad básica, ellos no conforman la sintaxis de
SQL normal más recientemente definida para la funcionalidad más
avanzada. Por ejemplo no todas las BD soportar procedimientos almacenados.
Una manera que el
API de JDBC trata de este problema es permitir cualquier sentencia sea
pasada a un driver de DBMS subyacente.
Para las aplicaciones
complejas, JDBC trata la conformación de SQL de otra manera. Proporciona
la información descriptiva sobre el DBMS por medio del DatabaseMetaData
para que las aplicaciones puedan adaptar a los requisitos y capacidades
de cada DBMS. |
|
El Armazón
de JDBC
JavaSoft proporciona tres componentes JDBC como la parte de la JDK:
el JDBC driver manager,
la JDBC driver test suite
el puente JDBC-ODBC.
El JDBC driver manager es el espinazo de la arquitectura de JDBC. Realmente
es bastante pequeño y simple; su función primaria es conectar
las aplicaciones de Java al chófer de JDBC correcto y entonces
salir de la manera.
La JDBC driver test
suite proporciona un poco de confianza en que drivers de JDBC ejecutarán
su programa. Pueden designarse sólo drivers que pasan la JDBC driver
test suite
|
|
El Armazón
de JDBC
El puente de JDBC-ODBC les permite a los drivers de ODBC ser usado como
drivers de JDBC. Y a largo plazo proporcionará una manera de acceder
alguno del DBMSs menos popular si no se crean los drivers de JDBC para
ellos.
|
Ejemplos JDBC ( Lado Cliente )
Se asume que se tiene instalado una DBMS Oracle 8i (versión 8.1.6)
y que se puede conectar usando el driver de JDBC.
Brevemente estos ejemplos muestran cómo conectarse a la Base de Datos
y usar sentencias SQL simples como "select", "insert", "update" y "delete".
Algunos ejemplos simples:
driver_ver.java Despliega la versión
del driver.
driver_check.java Chequea si corren los
drivers correctamente.
tab_sel.java Select a una tabla.
tab_upd.java Modifica registros en una tabla.
tab_del.java Borra registros de una tabla.
tab_ins.java Inserta registros hacia una tabla.
tabprep_upd.java Como usar una sentencia
de preparación con un "update".
Otros ejemplos:
call_sp.java Llamado a un procedimiento de Oracle.
call_sf.java Llama a una función de Oracle.
excep_1.java Manejo de excepciones (1).
excep_2.java Manejo de excepciones (2).
meta_data1.java Meta-datos. Cómo manejar
un "select *".
meta_data2.java Más métodos
con meta-datos , cómo obtener los nombres de los campos.
meta_data3.java Más métodos
con meta-datos (*).
meta_data4.java Detalles sobre las palabras
claves no estándares de la BD.
meta_data5.java Cómo encontrar el largo
máximo de un nombre de un campo.
meta_data6.java Tipos de tablas permitidos.
tab_preupdtran.java Cómo setear
una transacción.
tab_preupdrb.java Cómo ejecutar
un "rollback".
|