https://esoongan.tistory.com/164
JDBC란
- JDBC(Java Database Connectivity)는 Java에서 DB에 접근할 수 있도록 하는 Java API다.
- JDBC는 DB에서 데이터를 읽어오거나 업데이트 하는 방법을 제공한다.
Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/test";
conn = DriverManager.getConnection(url, "username", "password");
}catch(Exception e){
...
}finally{
conn.close();
}
JDBC Driver란
- JDBC Driver는 Java 응용 프로그램이 DB와 상호 작용할 수 있도록 도와주는 소프트웨어 구성 요소이다.
- DB마다 드라이버가 존재한다. 위의 예시에서 com.mysql.jdbc.Driver는 mysql 드라이버다.
DataSource란
- 순수 JDBC만을 사용하여 DB에 접근한다면, 접근을 할때마다 connection을 맺고 끊는 작업을 해야 한다.
- 이 반복되는 작업은 귀찮은 일이고, 더불어 connection을 맺고 끊는 작업에 굉장한 많은 자원을 소모하게 된다.
- DataSource는 Connection Pool을 관리하고 연동할 수 있게 도와주는 표준 인터페이스이다.
DBCP(DataBase Connection Pool)
- connection을 미리 생성해두고, DB에 접근하고자 하는 사용자에게 미리 생성된 connection을 제공하고 돌려 받는다.
- 이 connection들을 모아 두는 장소를 connection pool이라 한다.
- DataSource는 Java에서 connection pool을 제공하기 위한 인터페이스이다.
HikariDataSource란
- HikariCP에서 사용하는 DataSource 구현체
- HikariCP는 Spring Boot 2.0부터 제공하는 기본 JDBC Connection Pool
public class HikariDataSource extends HikariConfig implements DataSource, Closeable{
...
}
HikariCP