2. Modelos de acceso a BD
2
Aplicación
Java
JDBC
DBMS
Cliente
Servidor BD
Protocolo
BD
3. Modelos de acceso a BD
3
Aplicación
Java
JDBC
DBMS
Navegador
Web
Cliente (GUI)
Protocolo HTTP
Servidor
BD
Servlets, JSP
en servidor
WEB
Protocolo BD
4. Cargando el Driver
Es necesario primero cargar una clase con el driver de
la base de datos (esto lo provee el vendedor de la
DBMS)
Ejemplo:
Class c =
Class.forName(“com.informix.jdbc.IfxDriver");
Calss.forName(“com.novell.sql.LDAPDriver”);
Class.forName("com.mysql.jdbc.Driver");
Esto es particular según la base de datos que se usa
Luego hay que crear una instancia de la clase
c.newInstance();
4
5. Estableciendo la Conexión
Un objeto “Connection” representa una
conexión a una base de datos.
La clase “DriverManager” intenta ubicar
el controlador que pueda conectarse a
la base de datos representada en la
URL.
5
Connection con = DriverManager.getConnection (
url,login, password);
9. La clase Statement y Connection
Connection con =
getConnection(…);
Statement stmt=
con.createStatement();
En este momento la statement existe
pero no tiene una sentencia SQL para
ejecutar. Esta se puede pasar con los
métodos
executeUpdate(String), usada para crear/modificar tablas (no
hay resultados), típicamente para create, update, delete...
executeQuery(String) para hacer consultas, retornan resultados
en un objeto de la clase ResultSet, típicamente para select
9
11. El ResultSet
ResultSet rs = stmt.executeQuery(“select
nombre where direccion like Santiago”);
while (rs.next()) {
String s = rs.getString(“nombre”);
int y = rs.getInt(“año”);
System.out.println(s+” “+y);
}
ResultSet rs contiene una colección de filas con
los resultados de la pregunta. La instrucción next
avanza un puntero que indica en qué fila
estamos actualmente. Al principio está antes de
la primera fila, por lo cual se hace necesario
ejecutar un next() para situarse en la primera
11
12. ResultSet r=s.executeQuery(
“select * from libros where titulo like ‘%Java%’”);
String mayor=””;
while(r.next()){
String fecha=r.getString(“fecha”);
if(fecha.compareTo(mayor)>0) mayor=fecha;
}
//posicionar antes de primera fila
r.beforeFirst(); //r.absolute(0);
//recorrer libros de Java
while(r.next())
if( r.getString(“fecha”).equals(mayor) )
System.out.println(
r.getString(“id”)+r.getString(“titulo”));
Conclusiones