Just because DBs use "standard" SQL (and this is in quotation marks for some reason) does not mean that the DB uses the same low-level protocol for communication. SQL is just syntax, but not protocol.
The protocols for Postgres and, say, Oracle, are completely different and offer different functions, although both of them use similar SQL functions.
SQL itself, being standard, has large deviations in implementations. For example, MySQL is notorious for being less SQL compatible than other databases. While many of the SQLs used today are portable across the database, there are many.
JDBC and ODBC are kindred spirits. They provide a common interface that your application can use to communicate with RDBS. They also provided a common model for suppliers. These are the drivers.
Suppliers implement a driver that allows a JDBC / ODBC compatible program to talk to their database. The driver task converts ODBC / JDBC calls to the corresponding SQL queries or other management calls for the database.
JDBC / ODBC Bridge is a JDBC driver that speaks to an existing ODBC driver. This is an abomination. Do not use it. Every database today has JDBC drivers. And stick with type 4 JDBC drivers, if at all possible, as they are native Java, not type 2 drivers that use JNI for binary. Type 4 buggy drivers provide exceptions, type 2 buggy drivers lead to JVM crashes that destroy your application server. No thanks.
source share