JDBC - Escuela de Ingeniería Industrial PUCV

Anuncio
JDBC: Java Database Connectivity
™ JDBC es un paquete de Java que provee clases e interfaces
que interactúan con bases de datos relacionales.
™ JDBC soporta “queries” (requerimiento a una base de
datos) independientes del fabricante del DBMS a través de
drivers JDBC.
™ La mayor parte de los DBMS soportan JDBC (Oracle,
Informix, Sybase y otros).
JDBC: Java Database Connectivity
Franco Guidi Polanco
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
fguidi@ucv.cl
Se agradece a Marcelo Silva Flamm el material presentado en
estas transparencias
Franco Guidi Polanco (PUCV-EII)
Esquema de funcionamiento de JDBC
™DriverManager: administra los drivers que y
permite crear conexiones a bases de datos.
™Connection: es un conducto para las
comunicaciones con la base de datos.
™Statement: es la encapsulación de Java para una
sentencia SQL.
™ResultSet: almacena los resultados de un query.
API de JDBC
JDBC Driver Manager
Driver B
2
Principales clases e interfaces en JDBC
Aplicación Java
Driver A
3/9/2007
Drivers JDBC
Driver C ..... (Nativos, middleware,
JDBC-ODBC bridge)
Franco Guidi Polanco (PUCV-EII)
3/9/2007
3
Franco Guidi Polanco (PUCV-EII)
3/9/2007
4
Clase DriverManager
Interface Connection
™Esta clase carga los drivers JDBC instalados en el
computador.
™El método getConnection() encuentra el driver
apropiado para conectarse a una base de datos
específica. Este método retorna un objeto
Connection.
™Los objetos de este tipo representan una conexión
a la base de datos (una sesión entre el programa
Java y la base de datos).
™A través de esta conexión se envían queries SQL a
la base de datos, y se obtienen sus resultados.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:aquarium");
Franco Guidi Polanco (PUCV-EII)
3/9/2007
5
Interface Statement
Statement stmt = con.createStatement();
3/9/2007
3/9/2007
6
Interface ResultSet
™Los objetos Statement representan sentencias
SQL.
™Estas sentencias son enviadas a la base de datos (a
través de los objetos Connection).
™Si con es un objeto Connection, podemos crear un
objeto Statement de la siguiente manera:
Franco Guidi Polanco (PUCV-EII)
Franco Guidi Polanco (PUCV-EII)
7
™ Los objetos de este tipo almacenan una tabla de
resultados retornada como resultado de la ejecución de
una sentencia SQL.
ResultSet rs = stmt.executeQuery("Select * FROM
articulo ");
™ En el caso de objetos statement destinados a
agregar, actualizar, o eliminar registros, se deben usar
los métodos executeInsert(), executeUpdate()
y executeDelete(), respectivamente.
Franco Guidi Polanco (PUCV-EII)
3/9/2007
8
Iterando a través de ResultSet
import java.io.*;
import java.util.*;
import java.sql.*;
™Si rs es un objeto ResultSet, el siguiente código
muestra el primer campo para todos los registros
obtenidos (se supone que el primer campo
corresponde a un tipo representable como
String).
public class TestJdbc {
public static void main (String arg[] ) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/Datos");
String sql= "select * from proveedor;";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery( sql );
while ( rs.next() )
System.out.println( rs.getString( "rut“ ) + " "+ rs.getString( "nombre" )+ " “ );
st.close();
con.close();
} // end main()
} // end class
while (rs.next( ) )
System.out.println(”Col 1 Value=" +
rs.getString(1));
Este ejemplo utiliza “MySql” (www.mysql.com) como DBMS y “com.mysql.jdbc.Driver
como driver JDBC.
Franco Guidi Polanco (PUCV-EII)
3/9/2007
9
Franco Guidi Polanco (PUCV-EII)
3/9/2007
10
Descargar