JDBC M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Abril de 2006 Java Database Connectivity JDBC es un conjunto de clases que permite a las aplicaciones escritas en Java conectarse a los sistemas de manejo de bases de datos estándares. 1 Java Database Connectivity Utilizando JDBC, las aplicaciones pueden recuperar y almacenar información en bases de datos utilizando el Lenguaje de Consultas Estructurado (SQL) Java Database Connectivity Aplicación JDBC Driver Driver Driver Driver ODBC Oracle Access MySQL Sybase 2 El API JDBC Se incluye con el J2SDK Incorpora un puente JDBC-ODBC como parte del paquete sun.jdbc.odbc Funciona con: Oracle, Sybase, Microsoft SQL Server, Informix e Ingres Estableciendo una conexión Para abrir una conexión a una base de datos, deben seguirse tres pasos: 1.Cargar el Driver Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Representar la base de datos como un URL 3. Hacer la conexión 2. 3 URLs de JDBC Proporcionan una forma de identificar una fuente de datos, de manera que el driver apropiado pueda reconocerla y establecer una conexíón. La sintaxis estándar es la siguiente: jdbc:<subprotocolo>:<subnombre> URLs de JDBC El subprotocolo es el nombre del driver o del mecanismo de conexión hacia la base de datos. El subnombre es lo que identifica a la fuente de datos 4 URLs de JDBC El subprotocolo ODBC es un caso especial que permite agregar atributos después del subnombre: jdbc:odbc:<subnombre>[;atrib1=valor1]* Conexión a una base de datos en Access Se puede utilizar el Driver incluido en el J2SDK, de la siguiente forma: String url=“jdbc:odbc:;” + “DRIVER=Microsoft Access Driver (*.mdb);” + “DBQ=basededatos.mdb”; Para especificar una base de datos llamada “basededatos.mdb” 5 Conexión a una base de datos en Access Para abrir la conexión, se crea un onjeto de tipo Connection a través del método getConnection() de la clase DriverManager import java.sql.*; … Connection con=DriverManager.getConnection(url); Conexión a una base de datos en Access Después de ejecutar las instrucciones anteriores, se tendrá una conexión abierta con la base de datos por medio del objeto con, a través de la cual podemos escribir o leer de la base de datos, utilizando sentencias SQL. 6 Realizar una consulta La consulta podemos escribirla como una cadena: String query=“SELECT * FROM tabla”; Se creará un objeto de tipo Statement: Statement sm=con.createStatement(); Realizar una consulta A través del objeto Statement se realizará la consulta. El resultado se almacena en un objeto de tipo ResultSet Select: ResultSet res=sm.executeQuery(query); Create, Insert, Update: ResultSet res=sm.executeUpdate(update); 7 Métodos de ResultSet absolute(int fila) afterLast( ) beforeFirst( ) first( ) last( ) next( ) previous( ) getDate(int indiceColumna) getDate(String nombreColumna) getInt( ) getDouble( ) getFloat( ) getString( ) getBoolean( ) int getRow( ) refreshRow( ) Métodos de ResultSet updateDate(int indiceColumna, Date fecha) updateDate(String nombreColumna, Date fecha) updateInt( ) updateDouble( ) updateFloat( ) updateString( ) updateBoolean( ) 8