JDBC [Modo de Compatibilidad]
-
Upload
magaly-soto -
Category
Documents
-
view
214 -
download
2
description
Transcript of JDBC [Modo de Compatibilidad]
-
JDBCJava 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
JDBC API
Adm. de controladores JDBC
ControladorJDBC
DB
ControladorJDBC
DB
Aplicaciones Java
JDBC API
Adm. de controladores JDBC
C. ODBC
DB
C. ODBC
DB
Adm. de controladoresODBC
Puente JDBC/ODBC
-
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
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.
AplicacinJava
JDBC
DBMS
Cliente
ServidorBD
ProtocoloBD
-
Modelos de acceso a BD De 3 capas
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.
AplicacinJava
JDBC
DBMS
Applet en Java oNavegador HTML
Cliente (GUI)
Llamadas HTTP,RMI,CORBA
ServidorBD
Servidor
ProtocoloBD
-
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:: es el nombre del
controlador o del mecanismo de conexin. Ejemplo: odbc.
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
almacenadosFormatos 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");
}