Saltar la navegación

3.- Conectores o Drivers.

Esquema donde se ven en la parte superior entidades aplicación interaccionando con JDBC, que se representa con un rectángulo más abajo, y más abajo distintas bases de datos: MySQL, Oracle y SyBase.

Un conector o driver es un conjunto de clases encargadas de implementar los interfaces del API y acceder a la base de datos.

Para poder conectarse a una base de datos y lanzar consultas, una aplicación necesita tener un driver adecuado. Un conector suele ser un fichero .jar que contiene una implementación de todas las interfaces del API JDBC.

Cuando se construye una aplicación de base de datos, JDBC oculta lo específico de cada base de datos, de modo que el programador se ocupe sólo de su aplicación.

El conector lo proporciona el fabricante de la base de datos o bien un tercero.

El código de nuestra aplicación no depende del driver, puesto que trabajamos mediante los paquetes java.sql y javax.sql.

JDBC ofrece las clases e interfaces para:

  • Establecer una conexión a una base de datos.
  • Ejecutar una consulta.
  • Procesar los resultados.

Ejemplo:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConsultaSencilla {
public static void main(String[] args) {
Connection conexion;
try {
      String urljdbc = "jdbc:oracle:thin:@localhost:1521:XE";
      //la base de datos esta en local y el servicio Oracle es XE 
      //se utiliza thin driver 
      conexion = DriverManager.getConnection(urljdbc, "ejemplo", ejemplo"); 
      Statement smt = conexion.createStatement();
      ResultSet rset = smt.executeQuery("select  empno, ename , job from emp order by 1");
      while (rset.next())
            System.out.println("empleado numero " + rset.getString(1) + " nombre " + rset.getString(2) + " oficio " + rset.getString(3));
      conexion.close();
      } catch (SQLException e) {
      e.printStackTrace();
      }
    }
}

En principio, todos los conectores deben ser compatibles con ANSI SQL-2 Entry Level (ANSI SQL-2 se refiere a los estándares adoptados por el American National Standards Institute en 1992. Entry Level se refiere a una lista específica de capacidades de SQL.) Los desarrolladores de drivers pueden establecer que sus conectores conocen estos estándares.

Hay cuatro tipos de drivers JDBC: Tipo 1, Tipo 2, Tipo 3 y Tipo 4, que veremos en apartados posteriores.