Tipos de Controladores JDBC: Puente JDBC-ODBC y API Nativo

Clasificado en Informática

Escrito el en español con un tamaño de 2,29 KB

Controladores JDBC: Tipos y Características

Puente JDBC-ODBC (Tipo 1)

ODBC es una API estándar similar a JDBC, que permite a lenguajes como C++ acceder de forma estándar a diferentes sistemas de bases de datos. Un controlador de tipo puente JDBC-ODBC delega todo el trabajo a un controlador ODBC, que es quien realmente se comunica con la base de datos. El puente JDBC-ODBC permite la conexión desde Java a bases de datos que no proveen controladores JDBC.

Este puente fue muy útil en los inicios del API JDBC, ya que muchas bases de datos no disponían de controladores JDBC, pero sí de controladores ODBC. Empleando el puente JDBC-ODBC se podía acceder a estas bases de datos utilizando el API JDBC.

Sin embargo, este tipo de controlador tiene dos desventajas:

  • Dependencia de código nativo: El controlador ODBC no está desarrollado en Java, lo que compromete la portabilidad del desarrollo.
  • Múltiples capas de comunicación: La aplicación llama al gestor de controladores JDBC, que a su vez llama al controlador JDBC (puente JDBC-ODBC), que llama al controlador ODBC, y este finalmente llama a la base de datos. Estos múltiples puntos de fallo potenciales hacen que estos controladores sean a menudo inestables.

El puente forma parte del JDK de SUN, en el paquete sun.jdbc.odbc. Inicialmente, este tipo de controlador fue bastante útil para paliar la carencia de controladores JDBC. Hoy en día, es el menos recomendado por limitar la portabilidad de la aplicación (al requerir código nativo) y por emplear tantas capas para la comunicación con la base de datos, lo que incrementa la inestabilidad.

Manejador de API Nativo (Tipo 2)

Se basa en una librería escrita en código nativo para acceder a la base de datos. El controlador traduce las llamadas JDBC a llamadas al código de la librería nativa, siendo este código nativo el que se comunica con la base de datos. La librería nativa es proporcionada por los desarrolladores de la base de datos.

Estos controladores son más eficientes y tienen menos puntos de fallo que el puente JDBC-ODBC, ya que hay menos capas entre el código de la aplicación y la base de datos. Sin embargo, siguen teniendo el problema de la pérdida de portabilidad por emplear código nativo.

Entradas relacionadas: