
DriverManager
- 커넥션을 획득할 때 마다
URL , USERNAME , PASSWORD 같은 파라미터를 계속 전달해야 한다.
@Test
void driverManager() throws SQLException {
Connection connection1 =
DriverManager.getConnection(ConnectionConst.URL, ConnectionConst.USERNAME, ConnectionConst.PASSWORD);
Connection connection2 =
DriverManager.getConnection(ConnectionConst.URL, ConnectionConst.USERNAME, ConnectionConst.PASSWORD);
}
DriverManagerDataSource
- 처음 객체를 생성할 때만 필요한 파리미터를 넘겨두고, 커넥션을 획득할 때는 단순히
dataSource.getConnection() 만 호출하면 된다.
- 설정과 사용의 분리
- 설정
DataSource 를 만들고 필요한 속성들을 사용해서 URL , USERNAME , PASSWORD 같은 부분을 입력하는 것을 말한다. 이렇게 설정과 관련된 속성들은 한 곳에 있는 것이 향후 변경에 더 유연하게 대처할 수 있다.
- 사용
- 설정은 신경쓰지 않고,
DataSource 의 getConnection() 만 호출해서 사용하면 된다.
- 리포지토리(Repository)는
DataSource 만 의존하고, 이런 속성을 몰라도 된다
@Test
void dataSourceDriverManager() throws SQLException {
DataSource dataSource =
new DriverManagerDataSource(ConnectionConst.URL, ConnectionConst.USERNAME, ConnectionConst.PASSWORD);
useDataSource(dataSource);
}
private void useDataSource(DataSource dataSource) throws SQLException {
Connection con1 = dataSource.getConnection();
Connection con2 = dataSource.getConnection();
}