JDBC API를 이용한 DB 연결

sunghun Jung·2022년 5월 21일
0

JDBC는 DB마다 다른 사용 방법을 추상화하여 제공하는 표준 인터페이스이다.
과거 JDBC가 없을 때 애플리케이션의 코드가 특정 DB에 직접 연결되어 종속적이었고 사용하는 DB가 바뀐다면 애플리케이션 코드를 수정해야 했다. 이런 문제를 해결하고자 나온것이 JDBC API라는 표준 인터페이스다.

JDBC API는 각 DB에 접근하는 방법에 대해 추상화하여 제공한다.
(java.sql.Connection , java.sql.ResultSet 등등)
이를 통해 애플리케이션 코드에서는 이 인터페이스를 통해 DB에 접근할 수 있고 구체적인 DB 접근 방법은 몰라도 되는 특정 DB에 종속적이지 않은 코드를 작성할 수 있다 (일부 SQL문은 제외 ). 특정 DB를 사용하고자 한다면 각 회사에서DB에 접근할 수 있는 JDBC API의 구현체인 JDBC 드라이버를 제공하니 이것을 써서 DB를 사용하면 된다.

연결 과정

JDBC가 제공하는 DriverManager.getConnection("URL", "USERNAME", "PW")을 호출하면 DriverManager가 라이브러리에 등록된 드라이버 목록을 인식하고, 드라이버가 파라미터로 넘어온 URL 정보를 처리할 수 있는지 확인한다. 처리가 가능하면 DB에 TCP/IP 커넥션을 연결하고 USERNAME, PW와 기타 부가정보를 DB에 전달한다. DB는 전달받은 정보로 내부 인증이 완료되면 DB 세션을 내부에 생성하고 커넥션 생성이 완료되었다는 응답을 보낸다. 응답을 받은 DB 드라이버는 커넥션 오브젝트를 생성하여 클라이언트에 반환한다.

일련의 작업이 끝나면 생성된 커넥션 오브젝트와 DB 세션이 연결된다. 클라이언트는 생성된 커넥션을 통해 DB에 SQL문을 전달하면 커넥션과 연결된 DB 세션이 전달받은 SQL문을 실행한다.

여러 데이터 접근 기술(JPA, SQL 매핑)들은 내부에서 JDBC를 사용한다고 한다. 애플리케이션 코드에서 커넥션을 연결하는 방법은 사용하는 데이터 접근 기술마다 다를 수 있으나 위의 과정이 동일하게 일어난다.

0개의 댓글