Articulo de referencia

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 controlador...

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 emplea 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

  • Se puede acceder a casi cualquier base de datos para la que esté instalado un controlador ODBC y se pueden recuperar datos.

Desventajas

  • Sobrecarga de rendimiento debido a que las llamadas tienen que pasar por el puente JDBC (conectividad de base de datos Java) al controlador ODBC (conectividad de base de datos abierta) y luego a la interfaz de conectividad de base de datos nativa (por lo tanto, puede ser más lento que otros tipos de controladores).
  • El controlador ODBC debe estar instalado en la máquina cliente.
  • No es adecuado para applets , porque el controlador ODBC debe estar instalado en el cliente.
  • Los controladores ODBC específicos no siempre están disponibles en todas las plataformas; por lo tanto, la portabilidad de este controlador es limitada.
  • No hay soporte de JDK 1.8 (Java 8).

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

  • Como no hay implementación de un puente JDBC-ODBC, puede ser considerablemente más rápido que un controlador Tipo 1.

Desventajas

  • La biblioteca de cliente del proveedor debe estar instalada en la máquina cliente.
  • No todas las bases de datos tienen una biblioteca del lado del cliente.
  • Este controlador depende de la plataforma.
  • Este controlador admite todas las aplicaciones Java excepto los subprogramas.

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 directa o indirectamente 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 a firewall.

Funciones

  • Envía llamadas de API JDBC a un servidor de red de nivel intermedio que traduce las llamadas al protocolo de red específico del DBMS. Las llamadas traducidas se envían luego a un DBMS en particular.
  • Sigue un enfoque de comunicación de tres niveles.
  • Puede interactuar con múltiples bases de datos (no es específico del proveedor).
  • El controlador de cliente JDBC escrito en Java se comunica con un servidor de red middleware utilizando un protocolo independiente de la base de datos y luego este servidor de red traduce esta solicitud en comandos de base de datos para esa base de datos.
  • De esta forma, el controlador del cliente para la comunicación del middleware es independiente de la base de datos.

Ventajas

  • Dado que la comunicación entre el cliente y el servidor de middleware es independiente de la base de datos, no es necesario que la biblioteca del proveedor de la base de datos esté en el cliente. No es necesario cambiar el cliente para una nueva base de datos.
  • El servidor de middleware (que puede ser un servidor de aplicaciones J2EE completo) puede proporcionar servicios de middleware típicos, como almacenamiento en caché (de conexiones, resultados de consultas, etc.), equilibrio de carga, registro y auditoría.
  • Un solo controlador puede manejar cualquier base de datos, siempre que el middleware lo admita.
  • Por ejemplo: Servidor IDA

Desventajas

  • Requiere que la codificación específica de la base de datos se realice en el nivel intermedio.
  • La capa de middleware agregada puede generar latencia adicional, pero generalmente se supera utilizando mejores servicios de middleware.

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

  • Completamente implementado en Java para lograr independencia de la plataforma.
  • Estos controladores no traducen las solicitudes a un formato intermedio (como ODBC).
  • La aplicación cliente se conecta directamente al servidor de base de datos. No se utilizan capas de traducción ni de middleware , lo que mejora el rendimiento.
  • La JVM puede gestionar todos los aspectos de la conexión de la aplicación a la base de datos; esto puede facilitar la depuración.

Desventajas

  • Los controladores son específicos de cada base de datos, ya que los distintos proveedores de bases de datos utilizan protocolos de red muy diferentes (y generalmente propietarios).

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)".
Obtenido de "https://es.wikipedia.org/w/index.php?title=Controlador_JDBC&oldid=1240298206"