Question:
Is the JDBC Connection class thread safe? In other words, can a connection be shared between multiple threads without using synchronization?
Answer:
java.sql.Connection is actually an interface and not a class. JDBC drivers provide their own implementations of Connection which are returned by the DriverManager class. The JDBC specification requires that all JDBC objects be concurrently accessible by multiple threads without any special effort by the programmer. Therefore, any properly implemented JDBC driver will return Connection objects that you can use in multiple threads without defining synchronized blocks.