데이터베이스 커넥션
- 데이터베이스 커넥션을 얻기 위해서는 매우 복잡한 과정이 필요하다.(TCP/IP의 3 way handshake 등)
- 데이터 베이스에 접근하기 위해 접근할때 마다 커넥션을 만들어서 사용하면 속도가 매우 느려진다.
커넥션풀
해당 문제를 해결하기위해 커넥션을 미리 생성해두고 필요할떄 해당 커넥션을 할당 받아 사용하는 커넥션풀 방식을 사용한다.
DataSource
- DataSource는 커넥션을 획득하는 방법을 추상화한 인터페이스이다.
- 커넥션을 얻는 방법이 변경될때 코드를 변경해야하는 문제를 해결하기 위해 DataSource 인터페이스를 만들었다.
- 핵심 기능은 커넥션을 조회하는 getConnection 이다.
public interface DataSource {
Connection getConnection() throws SQLException;
}
DataSource를 이용한 커넥션풀
import com.zaxxer.hikari.HikariDataSource;
void dataSourceConnectionPool() throws SQLException, InterruptedException {
//커넥션 풀링: HikariProxyConnection(Proxy) -> JdbcConnection(Target)
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl(URL);
dataSource.setUsername(USERNAME);
dataSource.setPassword(PASSWORD);
dataSource.setMaximumPoolSize(10);
dataSource.setPoolName("MyPool");
useDataSource(dataSource);
Thread.sleep(1000); //커넥션 풀에서 커넥션 생성 시간 대기
}
설정과 사용이 분리되어서 사용시에 정보를 입력할 필요가 없다.
Reference
'Java , Spring > Java' 카테고리의 다른 글
[Java] CS 스터디 - 1주차 (Java & Spring) (0) | 2024.08.02 |
---|---|
[Java] UncheckedException과 CheckedException (Error와 Exception) (0) | 2024.01.22 |
[Java] 서블릿과 스프링에서의 MVC (0) | 2024.01.18 |
[Java] call by value, call by reference (0) | 2024.01.18 |
[Java] String.valueOf() 와 toString() (0) | 2024.01.17 |
댓글