Type 1: JDBC-ODBC
Drawback: client code must be loaded and configured on each client machine.
Type 2: A Native-API partly-Java driver
JDBC call -> client API
drawback: require native code on the client
sample: Oracle OCI through SQL*net
Type 3: A Net-Protocol All-Java driver
JDBC call -> DBMS-independent net protocol -> DBMS protocol(by middleware server)
Type 4: A Native-Protoco All-Java driver
JDBC call -> DBMS server
Sample: Oracle JDBC THIN driver