stringtranslate.com

Controlador JDBC

Un controlador JDBC es un componente de software que permite que una aplicación Java interactúe con una base de datos . [1] Los controladores JDBC son análogos a los controladores ODBC , los proveedores de datos ADO.NET y los proveedores OLE DB .

Para conectarse con bases de datos individuales, JDBC (Java Database Connectivity API ) requiere controladores para cada base de datos. El controlador JDBC proporciona la conexión a la base de datos e implementa el protocolo para transferir la consulta y el resultado entre el cliente y la base de datos.

Los controladores de tecnología JDBC encajan en una de cuatro categorías. [2]

  1. Puente JDBC-ODBC
  2. Controlador de API nativa
  3. Controlador de protocolo de red ( controlador de middleware )
  4. Controlador de protocolo de base de datos (controlador Java puro) o controlador fino.

Controlador tipo 1: puente JDBC-ODBC

Esquema del puente JDBC-ODBC

El controlador JDBC tipo 1, también conocido como puente JDBC-ODBC , es una implementación del controlador de base de datos que utiliza el controlador ODBC para conectarse a la base de datos. El controlador convierte las llamadas a métodos JDBC en llamadas a funciones ODBC.

El controlador depende de la plataforma, ya que utiliza ODBC, que a su vez depende de las bibliotecas nativas del sistema operativo subyacente en el que se ejecuta la JVM . Además, el uso de este controlador genera otras dependencias de instalación; por ejemplo, ODBC debe estar instalado en la computadora que tiene el controlador y la base de datos debe admitir un controlador ODBC. El uso de este controlador no se recomienda si está disponible la alternativa de un controlador Java puro. La otra implicación es que cualquier aplicación que utilice un controlador de tipo 1 no es portátil debido al vínculo entre el controlador y la plataforma. Esta tecnología no es adecuada para un entorno de muchas transacciones. Los controladores de tipo 1 tampoco admiten el conjunto completo de comandos Java y están limitados por la funcionalidad del controlador ODBC.

Sun (ahora Oracle) proporcionó un controlador JDBC-ODBC Bridge: sun.jdbc.odbc.JdbcOdbcDriver. Este controlador es de código nativo y no Java, y es de código cerrado. El JDBC-ODBC Bridge de Sun/Oracle se eliminó en Java 8 (hay otros proveedores disponibles). [3] [4] [5] [6]

Si un controlador ha sido escrito de modo que al cargarlo se crea una instancia y también se llama DriverManager.registerDrivercon esa instancia como parámetro, entonces estará en la lista de controladores de DriverManager y estará disponible para crear una conexión.

A veces puede darse el caso de que más de un controlador JDBC sea capaz de conectarse a una URL determinada . Por ejemplo, al conectarse a una base de datos remota determinada, podría ser posible utilizar un controlador puente JDBC-ODBC, un controlador de protocolo de red genérico a JDBC o un controlador proporcionado por el proveedor de la base de datos. En tales casos, el orden en el que se prueban los controladores es importante porque DriverManager utilizará el primer controlador que encuentre que pueda conectarse correctamente a la URL determinada.

En primer lugar, DriverManager intenta utilizar cada controlador en el orden en que se registró. (Los controladores que figuran en jdbc.drivers siempre se registran primero). Omitirá todos los controladores que no sean código confiable a menos que se hayan cargado desde la misma fuente que el código que intenta abrir la conexión.

Prueba los controladores llamando al método Driver.connect en cada uno de ellos, pasándoles la URL que el usuario pasó originalmente al método DriverManager.getConnection. El primer controlador que reconoce la URL realiza la conexión.

Ventajas

Desventajas

Controlador tipo 2: controlador de API nativa

Esquema del controlador de API nativo

El controlador JDBC de tipo 2, también conocido como controlador Native-API , es una implementación de controlador de base de datos que utiliza las bibliotecas del lado del cliente de la base de datos. El controlador convierte las llamadas de método JDBC en llamadas nativas de la API de la base de datos. Por ejemplo: el controlador Oracle OCI es un controlador de tipo 2.

Ventajas

Desventajas

Controlador de tipo 3: controlador de protocolo de red (controlador de middleware)

Esquema del controlador del protocolo de red

El controlador JDBC tipo 3, también conocido como el controlador Pure Java para middleware de bases de datos, [7] es una implementación de controlador de base de datos que utiliza un nivel intermedio entre el programa que realiza la llamada y la base de datos. El nivel intermedio ( servidor de aplicaciones ) convierte las llamadas JDBC de forma directa o indirecta en un protocolo de base de datos específico del proveedor .

Esto se diferencia del controlador de tipo 4 en que la lógica de conversión de protocolo no reside en el cliente, sino en el nivel intermedio. Al igual que los controladores de tipo 4, el controlador de tipo 3 está escrito completamente en Java.

El mismo controlador JDBC del lado del cliente se puede utilizar para varias bases de datos. Depende de la cantidad de bases de datos que se hayan configurado para admitir en el middleware. El controlador de tipo 3 es independiente de la plataforma , ya que el middleware se encarga de las diferencias relacionadas con la plataforma. Además, el uso del middleware proporciona ventajas adicionales de seguridad y acceso mediante firewall.

Funciones

Ventajas

Desventajas

Controlador tipo 4: controlador de protocolo de base de datos/controlador fino (controlador Java puro)

Esquema del controlador de protocolo nativo

El controlador JDBC tipo 4, también conocido como controlador Java puro directo a base de datos , es una implementación de controlador de base de datos que convierte las llamadas JDBC directamente en un protocolo de base de datos específico del proveedor .

Los controladores de tipo 4 están escritos completamente en Java y son independientes de la plataforma . Se instalan dentro de la máquina virtual Java del cliente. Esto proporciona un mejor rendimiento que los controladores de tipo 1 y tipo 2, ya que no tienen la sobrecarga de conversión de llamadas en llamadas ODBC o API de base de datos. A diferencia de los controladores de tipo 3, no necesita software asociado para funcionar.

Como el protocolo de base de datos es específico del proveedor, el cliente JDBC requiere controladores separados, generalmente suministrados por el proveedor, para conectarse a diferentes tipos de bases de datos.

Ventajas

Desventajas

Véase también

Referencias

  1. ^ "Tecnologías Java SE - Base de datos"
  2. ^ Descripción general de Sun JDBC
  3. ^ Oracle. "Puente JDBC-ODBC". Centro de ayuda de Oracle . Consultado el 27 de junio de 2015 .
  4. ^ "La vida después de sun.jdbc.odbc.JdbcOdbcDriver". Blog de tecnología de acceso a datos universal . OpenLink Software. 2015-06-04 . Consultado el 2016-11-18 . El puente JDBC-to-ODBC, tanto en su forma Tipo 1 como Tipo 3, ha estado disponible y se ha actualizado regularmente desde su lanzamiento original para JDBC 1.
  5. ^ "Conectores y controladores de puente SequeLink | Progress DataDirect".
  6. ^ "Soporte ODBC para Java 8".
  7. ^ "Controlador Java puro para middleware de base de datos (Acerca de los adaptadores de base de datos)".