You are on page 1of 25

Es el acrónimo
Connectivity.

de

Java

DataBase

Es un API (Interfaz de Programación de
Aplicaciones) dentro del lenguaje Java
para el acceso a bases de datos.
Consiste en un conjunto de clases e
interfaces escritos en Java que ofrecen
un completo API para la interacción con
bases de datos.

que deben implementar todos los fabricantes de drivers que quieran realizar una implementación de su driver 100% Java y compatible con JDBC. . Es una especificación formada por una colección de interfaces y clases abstractas.

Statement. java.sql.sql.Connection.* Las librerías que requiere son: import import import import java.DriverManager.SQLException.sql.sql.sql. . java.  Se encuentra en el paquete java. java.

4. 3.1. Registrar el driver (una sola vez). 5. Cerrar conexión. Procesar el resultado (si las sentencias SQL del paso 3 devolvieran datos). Establecer la conexión. 2. . Ejecutar sentencias SQL.

generalmente es un archivo JAR que contiene las clases que implementan las interfaces necesarias. . Son Las implementaciones del API JDBC que los proveedores de bases de datos han realizado.

Native-API partly-Java. Native-Protocol pure Java.    Tipo Tipo Tipo Tipo 1: 2: 3: 4: JDBC-ODBC Bridge. JDBC-Net pure Java. .

microsoft.derby.ibm.     MySql: com.as400.driver.jdbc.jdbc.apache.sqlserver.EmbeddedDriver SQL Server: com.AS400JDBCDriv er Oracle: oracle.jdbc.Driver AS400: com.mysql.jdbc.access.Oracle Apache Derby: org.SQLSer verDriver .

microsoft.    El Driver Manager lleva el control de los drivers JDBC cargados en memoria.forName (" com.sqlserver.SQLServerDriver ") .jdbc. Para cargar un driver se utiliza el método estático forName(driver). Es el encargado de realizar las conexiones con la base de datos. Por ejemplo : Class.

} } . }catch(ClassNotFoundException ex){ return false.forName(driver).public boolean registrarJDBC(String driver) { try{ Class. return true.

Ejemplo: Connection con=DriverManager. El objeto es instanciado por el Driver Manager por medio del método estático getConnection.• • • • • • Se instancia un objeto de la clase Connection. Pass: contraseña del usuario.pass) Url: es el identificador de la Base de Datos.us er. User: es el usuario con el que se abre la conexión. .getConnection(url.

la dirección IP o localhost (en caso de ser local) y el puerto (por default 1433)."."+"DatabaseName=EjemploBD.  En la URL se indica el subprotocolo. así como el nombre de la BD cuando ya existe. Por ejemplo: String URL="jdbc:sqlserver://localhost:143 3. .

String user. } } .String pass) { try{ Connection con. return null.getConnection(url. }catch(SQLException ex){ System. return con.public Connection realizarConexion(String url.print("Error: "+e.user.getMessage()). con=DriverManager.pass).out.

database locator: especifica la ubicación de la base de datos.Las URLs JDBC constan de las siguientes partes: jdbc:<subprotocolo>:<database locator> Donde: jdbc: es el protocolo (siempre es jdbc). . subprotocolo: Especifíca el tipo o nombre del Driver.

.    MySQL: jdbc:mysql://localhost/biblioteca AS400: jdbc:as400://server/. prompt=false Oracle: jdbc:oracle:thin://servidor:1521/ventas SQL Server jdbc:sqlserver://localhost:1433.qsy s.libraries=dbS1."+"D atabaseName=control_escolar.

los Statement deben ser cerrados cuando ya no se van a utlizar. el método para cerrar un Statement es: public void close() . El método para instanciar un Statement es: public Statement createStatement(tipo.permisos) Al igual que las conexiones. El objeto Statement es instanciado por el objeto Connection.    Para ejecutar sentencias SQL es necesario crear un objeto Statement.

Create: utiliza el método executeUpdate(String sql) el cual devuelve un int que siempre vale cero.sql. Update y Delete: utilizan el método executeUpdate(String sql) el cual devuelve un int con el número de filas afectadas.ResultSet Insert.    El método a utilizar depende del tipo de sentencia SQL que se quiera ejecutar. Select: se utiliza el método executeQuery(String sql) el cual devuelve una instancia de java. .

stmt.concat(apellido.try { Statement stmt = con.autor=libro. } catch (SQLException ex) { System.autor").createStatement(). rs.out. libro where autor.precio.nombre)" + ". ResultSet rs=stmt.executeQuery("select isbn10.close().print("Error: "+e.' '.close().getMessage()).titulo. } .leguaje from autor.

. Almacena los registros devueltos por la ejecucion de un Select. o Acceder a los valores de cada columna de la fila seleccionada.   Representa el resultado de una Sentencia SQL. Tiene métodos para: o Acceder a las filas del resultado.

previous(): fila anterior. Algunos métodos de Resultset: o o o o o next(): siguiente fila. a partir de la posición actual. absolute(): moverse al número de fila que se pase por parámetro. getRow(): devuelve el número de fila en el que se encuentre. relative(): desplazarse al número de fila que se indique. .

Ejemplo: public TDD getTDD(int columna) donde TDD es el tipo de dato. de esta manera es más fácil indicar al ResultSet el valor que se desea leer.• • El método para acceder al valor de una columna. dependerá del tipo de dato. . Las columnas de la tabla se numeran de izquierda a derecha de 1 a N.

El método para cerrarlo es: Public boolean close() . Es necesario cerrar el ResultSet cuando ya no se va a utilizar.

"+rs.createStatement().getString(1) + ".autor").close(). libro where autor.out.next()){ System.getString(2)+".getMessage()).autor=libro. } . } catch (SQLException ex) { System. "+ rs.close(). stmt.getBigDecimal(4)+ ". ResultSet rs=stmt.println(rs.titulo.' '. $"+ rs.getString(5) ).try { Statement stmt = con.print("Error: "+e.nombre)" + ".executeQuery("select isbn10.out.precio.getString(3) + ".leguaje from autor.concat(apellido. while (rs. +rs. } rs.

  Cuando se haya terminado de trabajar con una conexión ésta debe ser liberada. dado que una conexión abierta está utilizando recursos en el Gestor de la Base de Datos. Para cerrar una conexión se utiliza el método public void close() de la clase Connection. .

getMessage()).public void cerrarConexion(Connection con) { try { con.println("Conexión cerrada"). System.out.close(). } } . } catch (SQLException e) { System.out.print("Error: "+e.