Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Type 1 driver  JDBC-ODBC bridge  



1.1  Advantages  





1.2  Disadvantages  







2 Type 2 driver  Native-API driver  



2.1  Advantages  





2.2  Disadvantages  







3 Type 3 driver  Network-Protocol driver (middleware driver)  



3.1  Functions  





3.2  Advantages  





3.3  Disadvantages  







4 Type 4 driver  Database-Protocol driver/Thin Driver (Pure Java driver)  



4.1  Advantages  





4.2  Disadvantages  







5 See also  





6 References  














JDBC driver






Қазақша
Português
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


AJDBC driver is a software component enabling a Java application to interact with a database.[1] JDBC drivers are analogous to ODBC drivers, ADO.NET data providers, and OLE DB providers.

To connect with individual databases, JDBC (the Java Database Connectivity API) requires drivers for each database. The JDBC driver gives out the connection to the database and implements the protocol for transferring the query and result between client and database.

JDBC technology drivers fit into one of four categories.[2]

  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[edit]

Schematic of the JDBC-ODBC bridge

The JDBC type 1 driver, also known as the JDBC-ODBC bridge, is a dbase 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 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.

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. Sun's/Oracle's JDBC-ODBC Bridge was removed in Java 8 (other vendors' are available).[3][4][5][6]

If a driver has been written so that loading it causes an instance to be created and also calls DriverManager.registerDriver with that instance as the parameter, then it is in the DriverManager's list of drivers and available for creating a connection.

It may sometimes be the case that more than one JDBC driver is capable of connecting to a given URL. For example, when connecting to a given remote database, it might be possible to use a JDBC-ODBC bridge driver, a JDBC-to-generic-network-protocol driver, or a driver supplied by the database vendor. In such cases, the order in which the drivers are tested is significant because the DriverManager will use the first driver it finds that can successfully connect to the given URL.

First the DriverManager tries to use each driver in the order it was registered. (The drivers listed in jdbc.drivers are always registered first.) It will skip any drivers that are untrusted code unless they have been loaded from the same source as the code that is trying to open the connection.

It tests the drivers by calling the method Driver.connect on each one in turn, passing them the URL that the user originally passed to the method DriverManager.getConnection. The first driver that recognizes the URL makes the connection.

Advantages[edit]

Disadvantages[edit]

Type 2 driver – Native-API driver[edit]

Schematic of the Native API 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. For example: Oracle OCI driver is a type 2 driver.

Advantages[edit]

Disadvantages[edit]

Type 3 driver – Network-Protocol driver (middleware driver)[edit]

Schematic of the Network Protocol driver

The JDBC type 3 driver, also known as the Pure Java driver for database middleware,[7] 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.

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 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.

Functions[edit]

Advantages[edit]

Disadvantages[edit]

Type 4 driver – Database-Protocol driver/Thin Driver (Pure Java driver)[edit]

Schematic of the 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 protocol.

Written completely in Java, type 4 drivers are thus platform independent. They install inside the Java virtual machine 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.

Advantages[edit]

Disadvantages[edit]

See also[edit]

References[edit]

  • ^ Oracle. "JDBC-ODBC Bridge". Oracle Help Center. Retrieved 27 June 2015.
  • ^ "Life after sun.jdbc.odbc.JdbcOdbcDriver". Universal Data Access Technology Blog. OpenLink Software. 2015-06-04. Retrieved 2016-11-18. JDBC-to-ODBC Bridge, in both Type 1 and Type 3 forms, has been available and regularly updated since its original release for JDBC 1.
  • ^ "SequeLink Bridge Connectors & Drivers | Progress DataDirect".
  • ^ "Java 8 ODBC support".
  • ^ "Pure Java driver for database middleware (About Database Adapters)".

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=JDBC_driver&oldid=1183150545"

    Categories: 
    Java platform
    Data access technologies
    Hidden categories: 
    Articles with short description
    Short description with empty Wikidata description
    Articles needing additional references from March 2011
    All articles needing additional references
    Articles needing cleanup from March 2011
    All pages needing cleanup
    Cleanup tagged articles without a reason field from March 2011
    Wikipedia pages needing cleanup from March 2011
    Wikipedia articles that are too technical from December 2013
    All articles that are too technical
    Articles needing cleanup from July 2022
    Articles with sections that need to be turned into prose from July 2022
    Articles with multiple maintenance issues
     



    This page was last edited on 2 November 2023, at 13:57 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki