JDBC [Modo de Compatibilidad]

18
JDBC Java DataBase Connectivity

description

conexiones de base de datos

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");

    }