Download JDBC: Java Database Connectivity - Pontificia Universidad Católica

Document related concepts
no text concepts found
Transcript
JDBC: Java Database Connectivity
Franco Guidi Polanco
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
[email protected]
JDBC: Java Database Connectivity
v JDBC es un paquete de Java que provee clases e interfaces
que interactúan con bases de datos relacionales.
v JDBC soporta “queries” (requerimiento a una base de
datos) independientes del fabricante del DBMS a través de
drivers JDBC.
v La mayor parte de los DBMS soportan JDBC (Oracle,
Informix, Sybase y otros).
Se agradece a Marcelo Silva Flamm el material presentado en
estas transparencias
Franco Guidi Polanco (PUCV-EII)
25-05-14
2
Esquema de funcionamiento de JDBC
Aplicación Java
API de JDBC
JDBC Driver Manager
Driver A
Franco Guidi Polanco (PUCV-EII)
Driver B
Driver C .....
25-05-14
Drivers JDBC
(Nativos, middleware,
JDBC-ODBC bridge)
3
Principales clases e interfaces en JDBC
v DriverManager: administra los drivers que y
permite crear conexiones a bases de datos.
v Connection: es un conducto para las
comunicaciones con la base de datos.
v Statement: es la encapsulación de Java para una
sentencia SQL.
v ResultSet: almacena los resultados de un query.
Franco Guidi Polanco (PUCV-EII)
25-05-14
4
Clase DriverManager
v Esta clase carga los drivers JDBC instalados en el
computador.
v El método getConnection() encuentra el driver
apropiado para conectarse a una base de datos
específica. Este método retorna un objeto
Connection.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:aquarium");
Franco Guidi Polanco (PUCV-EII)
25-05-14
5
Interface Connection
v 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).
v A través de esta conexión se envían queries SQL a
la base de datos, y se obtienen sus resultados.
Franco Guidi Polanco (PUCV-EII)
25-05-14
6
Interface Statement
v Los objetos Statement representan sentencias
SQL.
v Estas sentencias son enviadas a la base de datos (a
través de los objetos Connection).
v Si con es un objeto Connection, podemos crear un
objeto Statement de la siguiente manera:
Statement stmt = con.createStatement();
Franco Guidi Polanco (PUCV-EII)
25-05-14
7
Interface ResultSet
v 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 ");
v 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)
25-05-14
8
Iterando a través de ResultSet
v 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).
while (rs.next( ) )
System.out.println(”Col 1 Value=" +
rs.getString(1));
Franco Guidi Polanco (PUCV-EII)
25-05-14
9
import java.io.*;
import java.util.*;
import java.sql.*;
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
Este ejemplo utiliza “MySql” (www.mysql.com) como DBMS y “com.mysql.jdbc.Driver
como driver JDBC.
Franco Guidi Polanco (PUCV-EII)
25-05-14
10