2010-04-26 13 views
10

¿Alguien me puede decir cómo funciona jdbc? ¿Cómo se las arregla para comunicarse con un SGBD? ya que DBMS puede escribirse con algún otro lenguaje de programación.¿Cómo funciona jdbc?

Respuesta

1

Desde el wikipedia page:

Tipos

There are commercial and free drivers available for most relational database servers. These drivers fall into one of the following types: 
Type 1 that calls native code of the locally available ODBC driver. 
Type 2 that calls database vendor native library on a client side. This code then talks to database over network. 
Type 3, the pure-java driver that talks with the server-side middleware that then talks to database 
Type 4, the pure-java driver that uses database native protocol 
2

mayoría de los sistemas de soporte de base de datos ODBC (conectividad abierta de bases de datos o lo que sea). Esto está destinado a permitir que las aplicaciones (por ejemplo, Access) funcionen con múltiples implementaciones RDBMS a costa de algún impacto en el rendimiento. Cuando se lanzó por primera vez JDBC, había un controlador que le permitía conectarse a un proveedor ODBC. Más tarde, algunos proveedores proporcionaron controladores JDBC específicos para su RDMS.

Desde la perspectiva del desarrollador, JDBC se utiliza como un conjunto de interfaces. Todos los detalles reales están ocultos al cargar el controlador. El controlador es una clase de Java que puede usar cualquier truco del libro, incluido el código nativo o simplemente el envío de tráfico de red al RDBMS.

5

De Wikipedia:

controladores JDBC son adaptadores del lado del cliente (instalado en la máquina cliente , no en el servidor) que convierten las peticiones de los programas Java a un protocolo que el DBMS puede entender. [edit] Tipos

Hay controladores comerciales y gratuitos disponibles para la mayoría de los servidores de bases de datos relacionales . Estos controladores pertenecen a uno de los siguientes tipos:

  • Tipo 1 que llama al código nativo del controlador ODBC disponible localmente.
  • Tipo 2 que llama a la biblioteca nativa del proveedor de la base de datos en el lado del cliente. Este código luego habla con la base de datos a través de la red.
  • Tipo 3, el conductor de en Java que las conversaciones con el middleware de servidor que luego habla a la base de datos
  • Tipo 4, el conductor de en Java que utiliza la base de datos de protocolo nativo
+1

Según la respuesta anterior, los controladores JDBC conversan las llamadas a la API de JDBC en un protocolo que DBMS puede comprender; que protocolo es ese? ¿Está disponible esa definición de protocolo para que podamos echarle un vistazo? – CuriousMind

1

De Wikipedia :

JDBC es una API para el lenguaje de programación Java que define cómo un cliente puede acceder a una base de datos. Proporciona métodos para consultar y actualizar datos en una base de datos. JDBC está orientado hacia bases de datos relacionales.

JDBC se introdujo por primera vez en la plataforma Java 2, Standard Edition, versión 1.1 (J2SE), junto con un puente JDBC-to-ODBC de implementación de referencia, que permite las conexiones a cualquier fuente de datos ODBC accesible en el entorno host JVM.

Sin entrar en demasiados detalles, se puede pensar en JDBC como una capa de abstracción que le permite hablar a diferentes bases de datos. Los detalles específicos de la implementación están ocultos para usted, pero la interfaz para consultar una base de datos (ya sea MySQL u Oracle o lo que sea) es la misma.

Lo que esto significa es que en el futuro, si había una nueva base de datos, alguien solo necesita usar la interfaz existente. Los nombres de los métodos serían los mismos, pero los métodos contendrían el código específico de la implementación para esa base de datos en particular. Este es un patrón común de ingeniería de software.

La entidad que contiene el código específico de implementación se llama JDBC driver. El controlador JDBC proporciona una conexión a la base de datos y también implementa el protocolo específico para enviar la consulta a la base de datos y el conjunto de resultados al cliente.

7

La comunicación con la base de datos es manejada por controladores JDBC que pueden usar varias estrategias para "hablar" a una base de datos (desde "traducción" hasta el uso del lenguaje "nativo"). Dependiendo de la estrategia utilizada, los conductores se clasifican en 4 tipos. Types of JDBC technology drivers proporcionar una buena descripción de cada uno de ellos:

  1. puente Un JDBC-ODBC proporciona acceso JDBC API a través de uno o más conductores de ODBC . en cuenta que algunos nativa nativa código de cliente ODBC código y en muchos casos la base de datos debe cargarse en cada máquina cliente que utiliza este tipo de conductor. Por lo tanto, este tipo de controlador es generalmente el más apropiado cuando instalación y descarga automáticas de una aplicación de tecnología Java es no es importante. Para obtener información sobre el controlador de puente JDBC-ODBC proporcionado por dom, consulte el controlador de puente JDBC-ODBC.

  2. Un nativo-API Java parte del conductor habilitado para la tecnología convierte llamadas JDBC en llamadas de la API de cliente para Oracle, Sybase, Informix, DB2, u otros DBMS. Tenga en cuenta que, al igual que el controlador de puente , este estilo de controlador requiere que algún código binario sea cargado en cada máquina cliente.

  3. Una red de protocolo de Java totalmente controlador habilitado para la tecnología se traduce API JDBC llamadas en una red de protocolo de DBMS independiente que luego se traduce a un protocolo de DBMS por un servidor. Este middleware del servidor de red es capaz de conectar todos sus clientes basados ​​en la tecnología Java a muchas bases de datos diferentes . El protocolo específico utilizado depende del proveedor. En general, esta es la alternativa de API JDBC más flexible . Es probable que que todos los proveedores de esta solución proporcionen productos adecuados para el uso de Intranet . Para que estos productos a también admitan el acceso a Internet, deben cumplir los requisitos adicionales para seguridad, acceso a través de firewalls, etc., que la Web impone. Varios proveedores de están agregando controladores basados ​​en la tecnología JDBC a sus productos de middleware de base de datos .

  4. A-protocolo nativo de Java totalmente controlador habilitado para la tecnología convierte tecnología de llamadas JDBC en el protocolo de red utilizado por los DBMS directamente. Este permite una llamada directa de la máquina cliente al servidor DBMS y es una solución práctica para el acceso Intranet . Dado que muchos de estos protocolos son propietarios, los proveedores de la base de datos serán la fuente principal para este estilo de controlador. Varios proveedores de base de datos tienen estos en progreso.

Como podemos ver, hay varias estrategias para hacer posible la interoperabilidad, incluyendo la implementación del protocolo de red utilizado por una base de datos dada en Java (tipo 4). Y debido a su facilidad de uso (sin elementos adicionales para instalar, no JNI) y sus buenos resultados (funcionan tan bien como los controladores de tipo 2 ahora), el tipo 4 es actualmente el más utilizado en la actualidad.

0

No puedo decir que sé la respuesta exacta a su pregunta, pero aquí hay información para ayudar.

Aquí es un gran lugar para empezar:

http://java.sun.com/products/jdbc/overview.html

El API JDBC contiene dos grandes grupos de interfaces: la primera es la API JDBC para los programadores de aplicaciones, y la segunda es la de menor nivel API de controlador JDBC para escritores de controladores.

Información para desarrolladores de controladores JDBC. Básicamente, hay un conjunto de interfaces que un desarrollador implementa para crear un controlador JDBC para un DBMS en particular.

http://java.sun.com/products/jdbc/driverdevs.html

Por lo que un DBMS está escrito en un idioma diferente. Es muy probable que ese DBMS exponga alguna API (en varios idiomas y/o formatos) que permita que los controladores, como JDBC, se comuniquen con el DBMS.