Академический Документы
Профессиональный Документы
Культура Документы
JDBC drivers implement the defined interfaces in the JDBC API for
interacting with your database server.
For example, using JDBC drivers enable you to open database connections
and to interact with it by sending SQL or database commands then receiving
results with Java.
The Java.sql package that ships with JDK contains various classes with their
behaviours defined and their actual implementaions are done in third-party
drivers. Third party vendors implements the java.sql.Driver interface in their
database driver.
JDBC Drivers Types:
JDBC driver implementations vary because of the wide variety of operating
systems and hardware platforms in which Java operates. Sun has divided the
implementation types into four categories, Types 1, 2, 3, and 4, which is
explained below:
Type 1: JDBC-ODBC Bridge Driver:
In a Type 1 driver, a JDBC bridge is used to access ODBC drivers installed
on each client machine. Using ODBC requires configuring on your system a
Data Source Name (DSN) that represents the target database.
When Java first came out, this was a useful driver because most databases
only supported ODBC access but now this type of driver is recommended
only for experimental use or when no other alternative is available.
The JDBC-ODBC bridge that comes with JDK 1.2 is a good example of this
kind of driver.
You can think of the application server as a JDBC "proxy," meaning that it
makes calls for the client application. As a result, you need some knowledge
of the application server's configuration in order to effectively use this driver
type.
Your application server might use a Type 1, 2, or 4 driver to communicate
with the database, understanding the nuances will prove helpful.
Type 100: 100% pure Java:
In a Type 4 driver, a pure Java-based driver that communicates directly with
vendor's database through socket connection. This is the highest
performance driver available for the database and is usually provided by the
vendor itself.
This kind of driver is extremely flexible, you don't need to install special
software on the client or server. Further, these drivers can be downloaded
dynamically.
If you are accessing one type of database, such as Oracle, Sybase, or IBM,
the preferred driver type is 4.
If your Java application is accessing multiple types of databases at the same
time, type 3 is the preferred driver.
Type 2 drivers are useful in situations where a type 3 or type 4 driver is not
available yet for your database.
The type 1 driver is not considered a deployment-level driver and is
typically used for development and testing purposes only.
The distinctive characteristic of type 2 jdbc drivers are that Type 2 drivers
convert JDBC calls into database-specific calls i.e. this driver is specific to a
particular database. Some distinctive characteristic of type 2 jdbc drivers are
shown below. Example: Oracle will have oracle native api.
Disadvantage
With type 4 drivers, the user needs a different driver for each database.
will provide products suitable for Intranet use. In order for these products
to also support Internet access they must handle the additional
requirements for security, access through firewalls, etc., that the Web
imposes. Several vendors are adding JDBC technology-based drivers to
their existing database middleware products.
These drivers use a networking protocol and middleware to communicate
with a server. The server then translates the protocol to DBMS function
calls specific to DBMS.
Type 3 JDBC drivers are the most flexible JDBC solution because they do
not require any native binary code on the client. A Type 3 driver does not
need any client installation.
Functions:
1. Follows a three tier communication approach.
2. Can interface to multiple databases - Not vendor specific.
3. 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.
4. Thus the client driver to middleware communication is database
independent.
5. Client -> JDBC Driver -> Middleware-Net Server -> Any Database
Advantages
1. 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'nt be
changed for a new database.
2. The Middleware Server (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..
3. eg. for the above include jdbc driver features in Weblogic.
4. Can be used in internet since there is no client side software needed.
5. At client side a single driver can handle any database.(It works
provided the middlware supports that database!!)
Disadvantages
Functions
1. Type 4 drivers are entirely written in Java that communicate directly
with a vendor's database through socket connections. No translation
or middleware layers, are required, improving performance.
2. The driver converts JDBC calls into the vendor-specific database
protocol so that client applications can communicate directly with
the database server.
3. Completely implemented in Java to achieve platform independence.
4. e.g include the widely used Oracle thin driver - oracle.jdbc.driver.
OracleDriver which connect to jdbc:oracle:thin URL format.
5. Client Machine -> Native protocol JDBC Driver -> Database server
Advantages
These drivers don't translate the requests into db request to ODBC or pass
it to client api for the db, nor do they need a middleware layer for request
indirection. Thus the performance is considerably improved.
Disadvantage
At client side, a separate driver is needed for each database.