JDBC driver
Encyclopedia
A JDBC driver is a software component enabling a Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 application to interact with a database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

. JDBC drivers are analogous to ODBC drivers, ADO.NET data provider
ADO.NET data provider
An ADO.NET data provider is a software component enabling an ADO.NET consumer to interact with a data source. ADO.NET data providers are analogous to ODBC drivers, JDBC drivers, and OLE DB providers....

s, and OLE DB provider
OLE DB provider
An OLE DB provider is a software component enabling an OLE DB consumer to interact with a data source. OLE DB providers are analogous to ODBC drivers, JDBC drivers, and ADO.NET data providers....

s.

To connect with individual databases, JDBC
Java Database Connectivity
Java DataBase Connectivity, commonly referred to as JDBC, is an API for the Java programming language that defines how a client may access a database. It provides methods for querying and updating data in a database. JDBC is oriented towards relational databases...

 (the Java Database Connectivity API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

) requires drivers for each database. The JDBC driver gives out the connection
Database connection
A database connection is a facility in computer science that allows client software to communicate with database server software, whether on the same machine or not. A connection is required to send commands and receive answers....

 to the database and implements the protocol for transferring the query and result between client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....

 and database.

JDBC technology drivers fit into one of four categories.

Type1 Driver - JDBC-ODBC bridge

The JDBC type1 driver, also known as the JDBC-ODBC bridge, is a database driver implementation that employs the ODBC driver to connect to the database. The driver converts JDBC method calls into ODBC function calls.

The driver is platform-dependent as it makes use of ODBC which in turn depends on native libraries of the underlying operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 the JVM is running upon. Also, use of this driver leads to other installation dependencies; for example, ODBC must be installed on the computer having the driver and the database must support an ODBC driver. The use of this driver is discouraged if the alternative of a pure-Java driver is available. The other implication is that any application using a type 1 driver is non-portable given the binding between the driver and platform. This technology isn't suitable for a high-transaction environment. Type 1 drivers also don't support the complete Java command set and are limited by the functionality of the ODBC driver.

Functions

  • Translates query obtained by JDBC into corresponding ODBC query, which is then handled by the ODBC driver.
  • Sun provides a JDBC-ODBC Bridge driver. sun.jdbc.odbc.JdbcOdbcDriver. This driver is native code and not Java, and is closed source.
  • Client -> JDBC Driver -> ODBC Driver -> Database

Disadvantages

  • Performance overhead since the calls have to go through the jdbc Overhead bridge to the ODBC driver, then to the native db connectivity interface (thus may be slower than other types of drivers).
  • The ODBC driver needs to be installed on the client machine.
  • Not suitable for applets, because the ODBC driver needs to be installed on the client
  • The Sun driver has a known issue with character encodings and Microsoft Access
    Microsoft Access
    Microsoft Office Access, previously known as Microsoft Access, is a relational database management system from Microsoft that combines the relational Microsoft Jet Database Engine with a graphical user interface and software-development tools. It is a member of the Microsoft Office suite of...

     databases. Microsoft Access may use an encoding that is not correctly translated by the driver, leading to the replacement in strings of, for example, accented characters by question marks. One workaround is to avoid reading strings directly, but rather to read the raw bytes and then translate these into a string, specifying the correct source encoding:


byte[] rawBytes = row.getBytes("COLUMN_NAME");
String columnValue = new String(rawBytes, "Windows-1252");

Type 2 Driver - Native-API Driver specification Or also called Partly Java Driver

The JDBC type 2 driver, also known as the Native-API driver, is a database driver implementation that uses the client-side libraries of the database. The driver converts JDBC method calls into native calls of the database API.

The type 2 driver is not written entirely in Java as it interfaces with non-Java code that makes the final database calls. The driver is compiled for use with the particular operating system. For platform interoperability, the Type 4 driver, being a full-Java implementation, is preferred over this driver.

  • The vendor client library needs to be installed on the client machine.
  • Not all databases have a client side library
  • This driver is platform dependent
  • This driver supports all java applications except Applets


Type 3 Driver - Network-Protocol Driver

The JDBC type 3 driver, also known as the Pure Java Driver for Database Middleware, is a database driver implementation which makes use of a middle tier between the calling program and the database. The middle-tier (application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

) converts JDBC calls directly or indirectly into the vendor-specific database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

 protocol.

This differs from the type 4 driver in that the protocol conversion logic resides not at the client, but in the middle-tier. Like type 4 drivers, the type 3 driver is written entirely in Java.
The same driver can be used for multiple databases. It depends on the number of databases the middleware has been configured to support. The type 3 driver is platform-independent as the platform-related differences are taken care by the middleware. Also, making use of the middleware provides additional advantages of security and firewall access.

Functions

  • Follows a three tier communication approach.
  • Can interface to multiple databases - Not vendor specific.
  • The JDBC Client driver written in java, communicates with a middleware-net-server using a database independent protocol, and then this net server translates this request into database commands for that database.
  • Thus the client driver to middleware communication is database independent.
  • Client -> JDBC Driver -> Network-protocol driver -> Middleware-Net Server -> Any Database,...

Advantages

  • Since the communication between client and the middleware server is database independent, there is no need for the vendor db library on the client machine. Also the client to middleware need not be changed for a new database.
  • The Middleware Server (which can be a full fledged J2EE Application server) can provide typical middleware services like caching (connections, query results, and so on), load balancing, logging, auditing etc.
  • Eg. for the above include jdbc driver features in Weblogic.
    • Can be used in internet since there is no client side software needed.
    • At client side a single driver can handle any database. (It works provided the middleware supports that database!)

Disadvantages

  • Requires database-specific coding to be done in the middle tier.
  • An extra layer added may result in a time-bottleneck. But typically this is overcome by providing efficient middleware services .

Type 4 Driver - Native-Protocol Driver

The JDBC type 4 driver, also known as the Direct to Database Pure Java Driver, is a database driver implementation that converts JDBC calls directly into a vendor-specific database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

 protocol.Therefore it is called a THIN driver.

Written completely in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, type 4 drivers are thus platform independent. They install inside the Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

 of the client. This provides better performance than the type 1 and type 2 drivers as it does not have the overhead of conversion of calls into ODBC or database API calls. Unlike the type 3 drivers, it does not need associated software to work.

As the database protocol is vendor-specific, the JDBC client requires separate drivers, usually vendor-supplied, to connect to different types of databases.

Functions

  • Type 4 drivers, coded entirely in Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    , communicate directly with a vendor's database, usually through socket connections. No translation or middleware
    Middleware
    Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...

     layers are required, improving performance.
  • The driver converts JDBC calls into the vendor-specific database protocol so that client applications can communicate directly with the database server.
  • Completely implemented in Java to achieve platform independence.
  • This type includes (for example) the widely-used Oracle
    Oracle database
    The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

    thin driver - oracle.jdbc.driver.OracleDriver which connects using a format configuration of jdbc:oracle:thin:@URL
  • Client -> Native-protocol JDBC Driver -> database server.

Advantages

  • These drivers don't translate the requests into an intermediary format (such as ODBC), nor do they need a middleware layer to service requests. This can enhance performance considerably.
  • The JVM can manage all aspects of the application-to-database connection; this can facilitate debugging.
  • Provides a way to manage copies of the database for each user.

List of JDBC Drivers

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK