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.DataSourcejavadoc
NOTE: Thejavax.sql.DataSourceinterface, 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.DriverManagerjavadoc
- 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)

