JDBC Driver Diagram


Chart Key
ODBC Bridge Driver Native-API Partly-Java Driver Net Protocol All-Java Driver Native Protocol All-Java Driver
Requires ODBC installed on the client. Does not require ODBC. May require ODBC installed on the server. Does not require ODBC.
Requires native libraries installed on the client. It uses the JavaSoft native interface specification. Intersolv provides a native interface for Netscape. Requires native libraries installed on the client. Uses no native code on the client. Can be loaded on a "thin client" (where code is loaded from the server at runtime). Can be loaded as an untrusted applet. Requires native libraries installed on the server. Uses no native code on the client. Can be loaded on a "thin client" (were code is loaded from the server at runtime). Can be loaded as an untrusted applet.1
Driver can open multiple database formats, but only one per Connection.2 Drivers normally will only interface with a single database format. Drivers can open open multiple database formats, possibly using the same Connection object, which will allow the creation of cross-database queries.3 Drivers normally will only interface with a single database format.
Processes run entirely on the client machine, unless the ODBC driver provides a connection to a database server. Processes run entirely on the client machine, unless the vendor API provides a connection to a database server. Processes are distributed between the client machine and an intermidiate, "middleware" server, which may also connect to a third machine; the database server. The middleware server can add its own security authentication, firewall/proxy tunneling, or network protocol translation.3 Distributes processing between the Java client and the database server, unless the driver is an all-Java local database engine, in which case all processes run on the client.
Each Connection object is a separate connection to a database server or engine. Each Connection object is a separate connection to a database server or engine. Each Connection object is a separate connection to the middleware server, which may send all requests to the database server using a single connection.3 This may help circumvent concurrent license restrictions on a database server. Each Connection object is a separate connection to a database server or engine.
  1. If not accessing a local database. Untrusted applets do not have read/write access to the local system.
  2. The JDBC-ODBC bridge requires a new Connection object for each new database URL. You cannot form a statement from multiple Connections. A bridge could conceivably be written which would allow multiple database access from a single Connection URL, but to my knowledge none exists (development of middleware servers with this capability is probably more lucrative).
  3. Different middleware servers offer different features.
  4. Unless this is built into the database vendor's networking architecture.
Chart Key
©1997 YoYo Publications
This document is provided as a public service by YoYo Publications.
Please refer to the license for terms.
Last Updated 23-Feb-97:TKP