VJDBC ("Virtual JDBC") is a JDBC type 3 driver which provides a client-server model for remote access of JDBC datasources over different network protocols.


Accessing JDBC-Datasources over networks is sometimes difficult. The JDBC specification defines four types of JDBC drivers. A type 3 driver is a net protocol full Java driver; it converts JDBC calls to a database-independent net protocol, which is then translated into the database protocol by the server.

It depends heavily on the database vendor or 3rd-party vendors if there is a type 3 driver available for a specific database. Furthermore these drivers mostly need an additional daemon process on the server which can serve calls from the net protocol. The configuration of this daemon process is also vendor-specific. Most of them require direct socket connections on some custom ports which is crucial in protected environments behind firewalls. Finally if you want to change the database the game will start from the beginning.

VJDBC is a vendor-agnostic type 3 JDBC-Driver with which you can remotely access every JDBC-Database in an efficient manner. Due to its command-oriented design different networking protocols can be supported quite easily.

There is a similar open source project called RmiJdbc. The main difference between VJDBC and RmiJdbc is that RmiJdbc exposes the complete interface of the JDBC-Objects via RMI, so every call on an JDBC-Object will go over the network. This can be a major performance killer. VJDBC uses a different approach with command objects and a very thin remote interface.