2010-03-04 9 views

Respuesta

22

El número de tipo dice algo acerca de cómo el controlador realmente se comunica con la base de datos.

  1. Via ODBC API.
  2. A través de la API específica del proveedor DB (usando JNI calls en, por ejemplo, un archivo DLL en Windows).
  3. Mediante protocolo de red genérico (usando sockets con, por ejemplo, protocolo TCP/IP).
  4. Protocolo de red específico del proveedor de DB (aún con sockets).

En general (por coincidencia), cuanto más alto es el número de tipo, mejor es el rendimiento del controlador JDBC.

+0

proveedor específico significa ** nativo ** ayuda un poco – Premraj

0

http://en.wikipedia.org/wiki/JDBC_driver

no parece haber ninguna lógica, simplemente simple pereza supongo!

ACTUALIZACIÓN: La pregunta era si había alguna lógica para llamarlo tipo 1, tipo 2, etc. en lugar de llamar al tipo apple, escriba orange :). Entiendo que los tipos de controladores son diferentes y funcionan/no funcionan en función de las circunstancias, pero ¿por qué el nombre "Tipo 1" en lugar de "Tipo JDBC-ODBC" o "Tipo JO" no tiene ninguna razón AFAIK.

+0

Tiene algo de lógica: conocer el tipo de controlador lo ayuda a comprender en qué circunstancias funcionará el controlador. Por ejemplo, un controlador que usa código nativo no funcionaría si no puede implementar código nativo (por ejemplo, en un applet). –

0

En resumen, cada Tipo utiliza una estrategia diferente y funciona mejor para diferentes tipos de implementaciones. No creo que fuera flojera. Creo que fue para poder elegir de manera más fácil y clara qué tipo es mejor para su situación particular.

4

Los números no son muy informativos. Me resulta más útil pensar en él a lo largo de las líneas de:

  • API local (1,2) vs protocolo de red (3, 4)
  • (números impares) con bases de datos independientes frente a la base de datos específica (incluso números)

Nunca pude recordar los números, pero cuando alguien dijo "usamos un controlador de tipo 4 aquí", pude hacer dos preguntas sí-no para saber de qué estaban hablando.

+0

Bonito mnemotécnico. – BalusC

8

Creo que se remonta al original del Sol (1997) intro to JDBC:

Los controladores JDBC que somos conscientes de en este momento generalmente encajan en una de cuatro categorías:

  1. Puente JDBC-ODBC más controlador ODBC: el producto de puente JavaSoft proporciona acceso JDBC a través de controladores ODBC. Tenga en cuenta que código binario ODBC, y en código de cliente de base de datos de muchos casos, debe cargarse en cada máquina cliente que utiliza este controlador. Como resultado, este tipo de controlador es el más apropiado en una red corporativa donde las instalaciones del cliente no son un problema importante, o para el código del servidor de aplicaciones escrito en Java en una arquitectura de tres niveles.

  2. -API del controlador original en parte en Java: Este tipo de controlador JDBC convierte llamadas en las llamadas de la API de cliente para Oracle, Sybase, Informix, DB2, u otros DBMS. Tenga en cuenta que, al igual que el controlador del puente, este estilo de controlador requiere que se cargue algún código binario en en cada máquina cliente. controlador Java puro

  3. JDBC-Net: Este controlador se traduce llamadas JDBC en un protocolo de red DBMS independiente que se luego se traducen a un protocolo de DBMS por un servidor. Este middleware del servidor de red puede conectar sus clientes de Java puros a muchas bases de datos diferentes. El protocolo específico utilizado depende de del proveedor. En general, esta es la alternativa más flexible de JDBC . Es probable que todos los proveedores de esta solución proporcionen los productos adecuados para el uso de la intranet. Con el fin de para que estos productos también admitan el acceso a Internet , deben manejar los requisitos adicionales para seguridad, acceso a través de firewalls, y así adelante, que la Web impone.

  4. Nativo-protocolo de controlador Java puro: Este tipo de controlador convierte llamadas JDBC en el protocolo de red utilizado por los DBMS directamente. Esto permite una llamada directa desde la máquina cliente al del servidor DBMS y es una excelente solución para el acceso a la intranet. Dado que muchos de estos protocolos son propietarios, los proveedores de la base de datos serán la fuente principal. Varios proveedores de bases de datos tienen estos en progreso .

La expectativa es que con el tiempo categorías de conductor 3 y 4 será la forma preferida acceder a bases de datos desde JDBC. Las categorías de controlador 1 y 2 son soluciones provisionales en las que los controladores directos de Java puros aún no están disponibles. Hay posibles variaciones en categorías 1 y 2 (que no se muestran en la tabla a continuación) que requieren un conector, , pero generalmente son menos deseables soluciones. Las categorías 3 y 4 ofrecen todas las ventajas de Java, incluida la instalación automática (por ejemplo, descargando el controlador JDBC con un applet que lo utiliza).


nota de que en realidad no nombrar los tipos 1, 2, 3 y 4, pero en lugar de puente JDBC-ODBC más el conductor de ODBC, la API del controlador original en parte, en Java, controlador Java puro JDBC-Net y el controlador Java puro de protocolo nativo. Cada nombre era un bocado, por lo que las personas inmediatamente comenzaron a referirse a ellos por su número en su lugar.

+0

Lamentablemente, Oracle no parece haber conservado el enlace al antiguo documento de Sun. –

Cuestiones relacionadas