DriverManager

The basic service for managing a set of JDBC drivers.

- 라이브러리에 등록된 DB 드라이버들을 관리하고, 커넥션을 획득하는 기능을 제공
ConnectionPool (Object Pool 패턴)
커넥션 풀 사용 전 (깡 DriverManager 만 활용)
- 매 요청 마다 커넥션을 새로 생성, 종료
- 커넥션을 생성하는 리소스는 매우 비싸다
- TCP/IP 연결

See Also)
커넥션 풀 도입
- 서비스를 시작하는 시점에 커넥션 객체를 필요한 만큼 미리 생성하여 풀에 보관
- 애플리케이션 로직은 커넥션을 사용하면 종료 시키는 것이 아니라 커넥션 풀에 반환함
- e.g.)
commons-dbcp2
,tomcat-jdbc pool
,HicariCP
See Also)
DataSource
- 자바 표준 커넥션 풀 인터페이스
A factory for connections to the physical data source that this DataSource object represents. An alternative to the DriverManager facility, a DataSource object is the preferred means of getting a connection. -java.sql.DataSource
javadoc
NOTE
: Thejavax.sql.DataSource
interface, provides another way to connect to a data source. The use of a DataSource object is the preferred means of connecting to a data source. -java.sql.DriverManager
javadoc
DriverManager
에서 직접, 혹은HicariCP
와 같은 커넥션 풀에서Connection
을 획득하는 방법에 대한 Bridge

HikariDataSource
- HikariCP의 DataSource 구현체
private final HikariPool fastPathPool;
- HikariPool을 Wrapping 함
- 실제 Connection은
HikariPool.connectionBag
에 보관함 - 동시성 처리등의 편의 제공
DriverManagerDataSource
- spring이 제공하는
drivermanager
를 직접 datasource로 wrapping 한datasource
구현체 - 덕분에
drivermanager
를 사용할 때도 커넥션 풀을 사용하는 것과 같은 인터페이스 (datasource
)를 사용할 수 있다. (풀링 기능 X)