ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring/Java] JDBC? DataSource? HikariDataSource? HikariCP?
    Java/Spring 2022. 6. 15. 16:18

     

    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

    • DB Connection Pool을 관리해줌 

     

     

    댓글

Designed by Tistory.