A JDBC driver is a software component enabling a Java application to interact with a database.
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.
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.
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.
Written completely in Java, type 4 drivers are thus platform independent.
As the database protocol is vendor specific, the JDBC client requires separate drivers, usually vendor supplied, to connect to different types of databases.