JDBC Drivers
A
JDBC driver is a software component which enables a Java application to
interact with a database. To connect with individual databases, JDBC requires
drivers for each database. The JDBC driver felicitates connection to the
database and implements the mechanism for transferring the query and result
between client and database.
There
are 4 (four) types of JDBC drivers.
1.
JDBC-ODBC bridge
2.
Native-API driver
3.
Network-Protocol driver (Middleware driver)
4.
Database-Protocol driver (Pure Java driver) or
thin driver.
Type
1 driver – JDBC-ODBC bridge
The JDBC type 1 driver, also
known as the JDBC-ODBC bridge, is a database driver implementation that uses
the ODBC driver to connect to the database. The driver converts JDBC method
calls into ODBC function calls.
Type 1 driver is
platform-dependent as it makes use of ODBC which in turn depends on native
libraries of the underlying operating system the JVM is running on. 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. Any application using a
type 1 driver is non-portable.
Sun (now Oracle) provided a
JDBC-ODBC Bridge driver: sun.jdbc.odbc.JdbcOdbcDriver. This driver is native
code and not Java, and is closed source.
Advantages
·
Any database for which an ODBC driver is
installed can be accessed, and data can be retrieved.
Disadvantages
·
Performance overhead since the calls have to go
through the JDBC bridge to the ODBC driver, then to the native database
connectivity interface.
·
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.
·
Specific ODBC drivers are not always available
on all platforms; hence, portability of this driver is limited.
·
No support from JDK 1.8 (Java 8) onwards.
Type
2 driver – Native-API drive
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.
Advantages
·
As there is no implementation of JDBC-ODBC bridge,
it may be considerably faster than a Type 1 driver.
Disadvantages
·
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 (middleware 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) converts JDBC calls directly or indirectly into a vendor-specific
database protocol. The type 3 driver is written entirely in Java. The same
client-side JDBC driver may 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 of by
the middleware. Also, making use of the
middleware provides additional advantages of security and firewall access.
Advantages
· Since the communication between client and the
middleware server is database independent, there is no need for the database vendor
library on the client. The client need not be changed for a new database.
· The middleware server can provide typical
middleware services like caching (of connections, query results, etc.), load balancing, logging, and auditing.
·
A single driver can handle any database,
provided the middleware supports it.
Disadvantages
·
Requires database-specific coding to be done in
the middle tier.
· The middleware layer added may result in
additional latency, but is typically overcome by using better middleware
services.
Type
4 driver – Database-Protocol driver (Pure Java 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 protocol. Type 4 drivers are platform independent as they are written
in Java. They install inside the Java Virtual Machine of the client. This
provides better performance as it does not have the overhead of conversion of
calls into ODBC or database API calls.
As the database protocol is
vendor specific, the JDBC client requires separate drivers, usually vendor
supplied, to connect to different types of databases.
Advantages
·
Completely implemented in Java to achieve
platform independence.
· These drivers don't translate the requests into
an intermediary format.
· The client application connects directly to the
database server. No translation or middleware layers are used, improving
performance.
· The JVM can manage all aspects of the
application-to-database connection; this can facilitate debugging.
Disadvantages
·
Drivers are database specific, as different
database vendors use widely different network protocols.
Your blog is the best place to gain knowledge on Java programming. Keep following my profile for IT trainings and languages studies.
ReplyDeleteRegards:
Java Courses in Chennai
J2EE Training in Chennai