Download JDBC

Document related concepts
no text concepts found
Transcript
Acceso a Bases de
Datos con Java
JDBC
03 de Mayo de 2006
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
Sistemas de Gestión de la Información
• Base de Datos
– Forma de almacenamiento de información
– Estructura y Datos
– Modelo Relacional
• Gestor de Base de Datos
– Aplicación para manipular bases de datos
– Oracle, Access, ...
• SQL – Structured Query Language
– Lenguaje estándar para crear, examinar y
manipular bases de datos relacionales
– Permite manipular bases de datos en diferentes
sistemas que soporten el estándar
Modelo Relacional (Tablas)
Campo, Atributo, Columna
Registro, Fila
Modelo Relacional (Relaciones)
Tabla
Clave
Relación
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
Introducción a SQL
• Recuperar información
SELECT [ALL | DISTINCT] <seleccion> FROM <tablas>
WHERE <condiciones de seleccion> [ORDER BY <columna> [ASC | DESC]
[,<columna> [ASC | DESC]]...]
• Almacenar información
INSERT INTO <nombre tabla>
[(<nombre columna> [,<nombre columna>]...)]
VALUES (<expresion> [,<expresion>]...)
• Eliminar datos
DELETE FROM <nombre tabla> WHERE <condicion busqueda>
• Actualizar datos
UPDATE <nombre tabla>
SET <nombre columna> = ( <expresion> | NULL )
[, <nombre columna> = ( <expresion> | NULL )]... WHERE <condicion busqueda>
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
Conectividad - ODBC
• ODBC – Open DataBase Connectivity
– Interface de aplicaciones (API) para acceder a
datos en sistemas gestores de bases de datos
utilizando SQL
Aplicación Cliente
Data Source Name (DSN)
ODBC Driver Manager
ODBC Driver
ODBC Driver
ODBC Database
Conectividad - JDBC
• JDBC
– Marca registrada
– Java DataBase Connectivity
• API de Java para ejecutar sentencias SQL
• JDBC posibilita básicamente tres cosas:
– Establecer una conexión con una base de datos
desde Java
– Enviar sentencias SQL a través de dicha conexión
– Procesar los resultados
JDBC vs. ODBC
• ¿Por qué no usar ODBC desde Java?
– Se puede usar ODBC desde Java
– Puente JDBC-ODBC
• ¿Por qué se necesita JDBC?
– ODBC no es apropiado para su uso directo desde
Java porque usa una interfaz en C
– Una traducción de la ODBC API en C a una API en
Java no sería deseable
– ODBC es duro de aprender
– Una API en Java como JDBC es necesaria para
conseguir una solución “puramente Java”
• JDBC API es una interfaz natural de Java
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
Controladores (Drivers) JDBC
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
JDBC 3.0 API
• La JDBC 3.0 API comprende 2 paquetes:
– java.sql
– javax.sql (añade capacidades de la parte servidor)
• Básicamente, los pasos a seguir son:
– Registrar un driver:
• Clase DriverManager
– Establecer una conexión con la base de datos:
• Interface Connection
– Enviar sentencias SQL a la base de datos:
• Interface Statement
– Procesar los resultados de las consultas
• Interface ResultSet
Utilización de JDBC 3.0 API
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = ″jdbc:odbc:wombat″;
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement();
ResultSet rs =
stmt.executeQuery(″SELECT a, b, c FROM Table2″);
While(rs.next()){
int i = rs.getInt(a);
String s = rs.getString(b);
Float f = rs.getFloat(c);
System.out.println(ROW=  + i +   + s +   + f);
}
JDBC 3.0 API
Connection
createStatement
prepareStatement
subclasses
Statement
prepareCall
subclasses
PreparedStatement
CallableStatement
Data Types
executeQuery
executeQuery
executeQuery
getXXX
ResultSet
getMoreResults
getResultSet
Índice
• Sistemas de Gestión de la Información
– Modelo Relacional
• Introducción a SQL
• Conectividad
– ODBC / JDBC
• Controladores (Drivers) JDBC
• JDBC 3.0 API
• Empezando a trabajar con JDBC
Empezando a trabajar con JDBC
• Base de datos en formato Access
– Base de Datos: Libros.mdb
– Tabla: Datos
– Campos: Código, Titulo, Autor
• Creación de un Data Source Name (DSN)
• Ejemplo de aplicación JDBC simple
• Ejemplo con excepciones y MetaData