Download Conferencia #9: ODBC, OLE DB y JDBC. File

Document related concepts
no text concepts found
Transcript
Bases de Datos
Conferencia 9. ODBC, OLE DB y JDBC.
Objetivos.

Open Data Base Connectivity (ODBC).

Object Linking and Embedding Data Base
(OLE DB).

Java Data Base Connectivity (JDBC).




Arquitectura JDBC.
Tipos de Drivers JDBC.
Clases e Interfaces del API JDBC.
Creación de Aplicaciones JDBC.
Open Data Base Connectivity
(ODBC)

Especificación estándar.

Acceso a BD Multiplataforma.

Interfaz de aplicación (API).
ODBC
Object Linking and Embedding
Data Base (OLE DB)

Acceso empresarial y a través de Internet.

Conjunto de interfaces de bases de datos.

Acceso a bases de datos SQL y no SQL.
OLE DB
OLE DB

Posibilidad de conexión a los
manipuladores ODBC

Alta velocidad para el acceso a las BD:
proveedores OLE-DB nativos.
JDBC

API incluida en el JDK.

Utilizada para el desarrollo de
aplicaciones con Bases de Datos.

Usada para traducir sentencias Java en
sentencias SQL.
Arquitectura JDBC.

Presenta dos capas.


Capa de Aplicación JDBC.
Capa de Driver JDBC.
Drivers JDBC.

Convierten las sentencias SQL en
sentencias específicas acorde a una
plataforma de Bases de Datos.

Reciben resultados de consultas SQL y
los transforman en objetos de clases
JDBC.
Drivers JDBC.

Existen cuatro tipos de driver.

JDBC – ODBC Bridge Driver.

Native – API Partly – Java Driver.

JDBC – Net Pure – Java Driver.

Native Protocol Pure – Java Driver.
JDBC – ODBC Bridge Driver.
Native – API Partly – Java Driver.
JDBC – Net Pure – Java Driver.
Native Protocol Pure – Java Driver.
JDBC.


Cases e Interfaces disponibles en los paquetes
java.sql y javax.sql.
Las clases e interfaces más usadas son:

DriverManager: Clase que carga el driver para una Base de Datos.

Driver: Interfaz que representa un driver una Base de Datos.

Connection: Interfaz que permite establecer conexiones.

Statement: Interfaz que permite ejecutar sentencias SQL.

ResulSet: Interfaz que representa información de una Base de Datos.

SQLException: Clase que provee información sobre errores que
ocurren gestionando Bases de Datos.
JDBC.

Pasos fundamentales para crear aplicaciones
JDBC:

Seleccionar y cargar el Driver.

Realizar la conexión a la Base de Datos.

Crear y ejecutar sentencias JDBC.

Gestionar excepciones SQL.
JDBC.

Cargando el Driver.


Por programación.

Utilizando el método forName().

Utilizando el método registerDriver().
Manualmente.

Indicando propiedades del sistema.
JDBC.

Cargando el Driver.


El método forName().

Pertenece a la clase java.lang.Class.

Ej: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
El método registerDriver().

Requiere de una instancia de Driver.

Ej: Driver d = new sun.jdbc.odbc.JdbcOdbcDriver();
DriverManager.registerDriver(d);
JDBC.

Conectándose a una Base de Datos.

La clase DriverManager tiene el método getConnection()
para crear un objeto Connection.

Formas del método getConnection().
•
•
Connection getConnection (String <url>)
•
Connection getConnection (String
<url>,Properties <properties>)
Connection getConnection (String <url>, String
<username>, String <password>)
JDBC.

Creando y Ejecutando Sentencias JDBC.

El objeto Connection ofrece el método createStatement()
para crear un objeto Statement.

Statement permite realzar consultas SQL estáticas.

La interface Statement contiene los siguientes métodos
para enviar consultas estáticas a una Base de Datos:
•
•
•
SELECT SQL
ResultSet executeQuery(String str)
int executeUpdate(String str) INSERT, UPDATE y
DELETE SQL
boolean execute(String str)
Transformación de Esquemas (DDL)
JDBC.
Consultando y Modificando Información usando el
objeto PreparedStatement.

PreparedStatement es una interfaz derivada de la
interfaz Statement.

Esta localizada en el paquete java.sql.

Permite pasar parámetros en tiempo de ejecución.

Es preparado y compilado una sola vez.

Reduce la carga sobre el servidor aumentando el
rendimiento de la aplicación.
JDBC.
Consultas con parámetros.

El método prepateStatement() del objeto
Connection es usado crear consultas con
parámetros.

El signo ‘?’ indica parámetros de entrada que
toman valor durante la ejecución.
Ej. "SELECT * FROM autores WHERE au_id = ?“

Cada parámetro se pasa con el método setXXX()
donde XXX es el tipo de datos del parámetro.
Ej.
setString(1,”1001”);
JDBC.
Consultas con parámetros. Ejemplo.
Obtener libros escritos por determinado autor.
String str = "SELECT * FROM titulos WHERE au_id = ?";
PreparedStatement ps = con.prepareStatement(str);
ps.setString(1, "1001");
ResultSet rs = ps.executeQuery();
Objeto Conexión.
JDBC.
Ejecutando Procedimientos Almacenados.

Uso de la interfaz CallableStatement, derivada de la interfaz
PreparedStatement.

Incluida en el paquete java.sql.

La interfaz Connection contiene el método prepareCall() que
crea un objeto CallableStatement.

Sintaxis de llamada de procedimientos almacenados:
•
Sin parámetros: { call <procedure_name> };
•
Con parámetros: {[? =] call <procedure_name>
[<parameter1>,<parameter2>, ..., <parameterN>]}
JDBC.
Ejecutando Procedimientos Almacenados.

Uso del signo “?” para indicar parámetros IN, OUT o INOUT.

Se basa en la sintaxis: { call <procedure_name>(?) };

Los parámetros de entrada se indican con el método
setInt().

Para los parámetros de salida de debe registrar el tipo de
dato con el uso del método registerOut().

Existen dos variantes del método registerOut():
•
•
registerOut(int index, int stype)
registerOut(int index, int stype, int scale)
Conclusiones

Potencialidad de los objetos ADO.

Facilidad del acceso a diferentes BD.

Grandes ventajas del API JDBC de Java.