JDBC란?

누피밥·2025년 3월 17일

Java

목록 보기
10/11

JDBC란?

JDBC는 Java Database Connectivity의 약자로써 Java로 데이터베이스에 연결하고 데이터를 주고받기 위해 사용하는 API이다. java.sql에 포함되어 있다.

예제 코드

JDBC를 사용하여 데이터베이스 관련 작업을 수행하는 경우 JDBC driver를 통하여 작업을 수행한다. 전체적인 그림은 아래와 같다.

예제 코드
드라이버 로딩 -> connection 생성 -> sql 실행 -> connection 종료로 이뤄져 있다.

public void main(String[] args) {
	//1. dirver loading
    Class.forName("com.mysql.cj.jdbc.dirver");
    
    //2. connection 생성
    String url = "jdbc:mysql://localhost:3306/board";
    String id = "test";
    String pwd = "test01";
    
    Connection conn = null;
    PreparedStatement pstmt = null;
    
    try {
    	conn = DriverManager.getConnection(url, id, pwd);
        
        //3. sql 작성
        String sql = "SELECT * FROM member";
        pstmt = conn.getPreparedStatement(sql);
        
        //4. sql 실행
        ResultSet rs = pstmt.executeQuery();
        
        //5. 결과 값 사후처리
        while(re.next()) {
        	rs.getString("id");
            ...
        }
    } catch (Exception e) {
    	e.printStacktrace();
    } finally {
    	//6. connection 종료
    	if(pstmt != null) {
        	pstmt.close();
        }
        if(conn != null) {
        	conn.close();
        }
    }
}

단점

JDBC를 사용하여 데이터베이스 관련 작업을 수행하는 경우 항상 connection을 생성하고 종료하는 작업을 수행해야한다. connection을 생성하고 종료함은 구체적으로 네트워크 연결, 사용자 인증 등 다양한 부가적인 작업이 수반되는 것을 의미한다. 많은 비용 발생으로 비효율성을 초래한다. 따라서, 상용화 어플리케이션에서는 순수 JDBC가 아닌 Connection Pool기능이 있는 DataSource 방식을 사용한다.

DataSource란?

DataSource란 데이터베이스 Connection을 다루기 위해 표준화된 인터페이스이다. javax.sql에 포함되어 있다. 다양한 라이브러리들이 DataSource 인터페이스를 구현하였으며 상용화된 어플리케이션에서는 DataSource 구현체를 사용하여 데이터베이스 연결을 수행한다. DataSource는 순수 JDBC 방식으로 데이터베이스 작업을 수행할 때 발생했던 connection 비용 문제를 해결하기 위해 connection 풀링 기능을 제공한다.

0개의 댓글