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 (la API de conectividad de bases de datos de Java ) 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 API nativo
  3. Controlador de protocolo de red ( controlador de middleware )
  4. Controlador de protocolo de base de datos (controlador Java puro) o controlador ligero.

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 dbase que emplea el controlador ODBC para conectarse a la base de datos. El controlador convierte 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. Se desaconseja el uso de este controlador si está disponible la alternativa de un controlador puramente Java. La otra implicación es que cualquier aplicación que utilice un controlador de tipo 1 no es portátil dada la vinculación 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 de Java y están limitados por la funcionalidad del controlador ODBC.

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

Si un controlador se ha escrito de manera que al cargarlo se crea una instancia y también se llama DriverManager.registerDrivercon esa instancia como parámetro, entonces está en la lista de controladores de DriverManager y está 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, es posible utilizar un controlador de puente JDBC-ODBC, un controlador de protocolo de red genérico 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 y que pueda conectarse correctamente a la URL determinada.

Primero, DriverManager intenta utilizar cada controlador en el orden en que se registró. (Los controladores enumerados en jdbc.drivers siempre se registran primero). Omitirá cualquier controlador que no sea código de confianza a menos que se haya 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 API nativo

Esquema del controlador API nativo

El controlador JDBC 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 al 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 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 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 medio ( servidor de aplicaciones ) convierte las llamadas JDBC directa o indirectamente en un protocolo de base de datos específico del proveedor .

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

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

Funciones

Ventajas

Desventajas

Controlador tipo 4: controlador de protocolo de base de datos/controlador delgado (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 llamadas JDBC directamente en un protocolo de base de datos específico del proveedor .

Escritos completamente en Java , los controladores tipo 4 son, por tanto, 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 2, ya que no tiene la sobrecarga de conversión de llamadas en llamadas ODBC o API de base de datos. A diferencia de los controladores tipo 3, no necesita software asociado para funcionar.

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

Ventajas

Desventajas

Ver también

Referencias

  1. ^ "Tecnologías Java SE - Base de datos"
  2. ^ Descripción general de Sun JDBC
  3. ^ Oráculo. "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 universal a datos . Software OpenLink. 2015-06-04 . Consultado el 18 de noviembre de 2016 . El puente JDBC a ODBC, tanto en formato Tipo 1 como Tipo 3, ha estado disponible y se ha actualizado periódicamente 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 bases de datos (Acerca de los adaptadores de bases de datos)".