public class DbConnectionUtil {
public static Connection getConnection() {
try {
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
log.info("get connection={},class = {}",conn,conn.getClass());
return conn;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
외부 라이브러리에서 h2 Driver를 찾아 connection을 가져오는 코드이다.
get connection=conn0: url=jdbc:h2:tcp://localhost/~/test user=SA,
class = class org.h2.jdbc.JdbcConnection
connection의 class를 출력해보면 구현체가 org.h2.jdbc.JdbcConnection
라는 것을 알 수 있다.
JDBC가 제공하는 DriverManager는 라이브러리에 등록된 DB 드라이버들을 관리하고, 커넥션을 획득하는 기능을 제공한다.
커넥션을 얻는 순서
1. DriverManager에 등록된 드라이버 목록을 보고 순서대로 URL, USERNAME, PASSWORD 등의 정보를 넘겨 커넥션을 획득할 수 있는지 확인한다.
2. 처리할 수 있는 드라이버를 찾으면 실제 DB에 연결해 커넥션을 획득하고 클라이언트에 반환한다.
3. 이렇게 찾은 커넥션 구현체를 클라이언트에 반환한다.