JDBC - PowerPoint PPT Presentation

About This Presentation
Title:

JDBC

Description:

JDBC Java Database Connectivity CC52N - Computaci n para el trabajo grupal Profesor: N lson Baloian Por: Edgard Pineda Introducci n JDBC es una API, formada por ... – PowerPoint PPT presentation

Number of Views:132
Avg rating:3.0/5.0
Slides: 21
Provided by: EPL54
Category:

less

Transcript and Presenter's Notes

Title: JDBC


1
JDBC
  • Java Database Connectivity

CC52N - Computación para el trabajo
grupal Profesor Nélson Baloian Por Edgard Pineda
2
Introducción
  • JDBC es una API, formada por conjunto de clases e
    interfaces en el lenguaje de programación Java,
    para ejecutar sentencias SQL.
  • Ofrece un estándar de conexión a cualquier base
    de datos disponible en el mercado.
  • Permite obtener los datos en forma fácil y cómoda
    en ambientes cliente-servidor a través de
    Internet/Intranet.

3
Qué hace JDBC?
  • Establece una conexión a una base de datos.
  • Envía sentencias SQL.
  • Procesa los resultados de estas sentencias.

4
Arquitectura JDBC
  • Arquitectura normal
  • Puente JDBC-ODBC

Aplicaciones Java
Aplicaciones Java
JDBC API
JDBC API
Adm. de controladores JDBC
Adm. de controladores JDBC
Puente JDBC/ODBC
Controlador JDBC
Controlador JDBC
Adm. de controladoresODBC
C. ODBC
C. ODBC
DB
DB
DB
DB
5
Primer ejemplo básico
  • Connection con DriverManager.getConnection (
  • "jdbcodbcnombre", "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.

6
...Primer ejemplo básico
  • Ejemplos de URL
  • jdbcmysql//myserver4444/db1
  • jdbcoracle//oraserver
  • jdbcodbcmydatabase

7
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 implementación
    de Java.
  • ODBC mezcla funciones simple y complejas.
  • Los controladores de ODBC deben ser instalados en
    cada cliente.

8
...JDBC vs. ODBC
  • JDBC es una interfaz natural en Java.

9
Modelos de acceso a BD
  • De 2 capas
  • La aplicación habla directamente con la base de
    datos.
  • Controlador JDBC se comunica con el sistema
    específico que maneja la base de datos.
  • La base de datos puede estar en otra máquina, con
    lo que el cliente se comunica por red. Esta es la
    configuración llamada cliente/servidor.

Aplicación Java
Cliente
JDBC
Protocolo BD
DBMS
Servidor BD
10
Modelos de acceso a BD
  • De 3 capas
  • Los comandos son enviados a la capa intermedia de
    servicios, la cual envía sentencias SQL a la base
    de datos. Ésta las procesa y envía los resultados
    de vuelta a la capa intermedia, para luego ser
    enviados al cliente.
  • Permite un control de acceso y de actualización.
  • Provee ventajas de performance.

Cliente (GUI)
Applet en Java o Navegador HTML
Llamadas HTTP, RMI,CORBA
Aplicación Java
Servidor
JDBC
Protocolo BD
DBMS
Servidor BD
11
Categorías 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 sólo 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 sólo Java. Se usa un
    protocolo de red con la BD.

12
Conexión
  • Un objeto Connection representa una conexión a
    una base de datos.
  • Una sesión incluye las sentencias SQL que son
    ejecutadas y los resultados de éstas.
  • Establecer la conexión DriverManager.getConnecti
    on
  • La clase DriverManager intenta ubicar el
    controlador que pueda conectarse a la base de
    datos representada en la URL.

13
...Conexión
  • Sintáxis de una URL JDBC
  • jdbcltsubprotocologtltsubnombregt
  • ltsubprotocologt es el nombre del controlador o del
    mecanismo de conexión. Ejemplo odbc.
  • ltsubnombregt es la identificación de la base de
    datos. El formato varia según el controlador
    especificado. Ejemplo //servidorpuerto/etc

14
Enviando sentencias SQL
  • JDBC permite que se escriba cualquier tipo de
    sentencia SQL. Aunque ésta fuera dependiente de
    la base de datos sólo se correría el riesgo de
    incompatibilidad al cambiar de base de datos.
  • Llamadas a procedimientos almacenados
  • Formatos de fecha

15
...Enviando sentencias SQL
  • JDBC provee 3 clases
  • Statement Este objeto es usado para enviar
    sentecias SQL simples. Es creado por el método
    createStatement.
  • PreparedStatement Este objeto es usado para
    sentencias que requieren uno o más parámetros. La
    sentencia es precompilada y guardada para uso
    futuro.
  • CallableStatement Es usado para ejecutar
    procedimientos almacenados.

16
Transacciones
  • Una transacción consiste en una o más 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
    métodos commit o rollback explícitamente.

17
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 través de un conjunto de métodos get,
    los cuales, a su vez, permiten el acceso a cada
    columna de estas filas.

18
Cargando la clase del controlador JDBC
  • Ejemplo
  • Class.forName(empresa.db.Driver")
  • Esto crea una instancia del controlador y llama
    al método DriverManager.registerDriver
    registrando este controlador en la lista de
    controladores disponibles para conexiones.

19
Ejemplo de sentencia
  • Connection con DriverManager.getConnection (
  • "jdbcodbcnombre", "login", "password")
  • PreparedStatement pstmt con.prepareStatement(
    UPDATE tabla1 SET m? WHERE x?)
  • pstmt.setString(1, "Hola")
  • for (int i 0 i lt 10 i)
  • pstmt.setInt(2, i)
  • int rowCount pstmt.executeUpdate()

20
Primer ejemplo básico
  • Connection con DriverManager.getConnection (
  • "jdbcodbcnombre", "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")
Write a Comment
User Comments (0)
About PowerShow.com