본문 바로가기
백수/java

JDBC란

728x90
반응형

JDBC란

자바에서 DB 프로그래밍을 하기 위해 사용되는 API

자바 프로그램이 데이터베이스와 연결되어 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스입니다.

등장 이유

과거에는 DB마다 커넥션을 연결하는 방법, SQL 전달 방법, 결과 응답 방법이 상이하고

MySQL, Oracle 등 DB의 종류도 다양해서 종류에 따라 코드도 변경해야 합니다.

이를 위해 개발자는 연결 방법을 매번 배우고 코드의 적용했어야 합니다.

JDBC 역할

  • JAVA 코드에서 DB 서버에 접속
  • SQL 문을 구성하고 DB 서버에서 실행
  • DB 서버에서 처리한 결과를 가져오기
  • DB의 정보를 가져오기

JDBC 동작 흐름

JAVA 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스

JDBC는 JAVA 애플리케이션 내에서 JDBC API를 사용하여 데이터베이스에 접근하는 단순 구조입니다.

JDBC API를 사용하기 위해서는 JDBC 드라이버를 먼저 로딩 후 데이터베이스와 연결해야 합니다.

JDBC 기본 인터페이스

  • java.sql.Connection : 연결
  • java.sql.Statement : SQL을 담은 내용
  • java.sql.ResultSet : SQL 요청 응답

JDBC 드라이버

  • 데이터베이스와 통신을 담당하는 인터페이스
  • Oracle 등과 같은 데이터베이스에 알맞은 JDBC 드라이버를 구현하여 제공
  • JDBC 드라이버의 구현체를 이용해서 특정 벤더의 데이터베이스에 접근할 수 있음

JDBC API 사용 흐름

  1. JDBC 드라이버 로딩 :
    사용하고자 하는 JDBC 드라이버를 로딩 / ※ DriverManager 클래스를 통해 로딩
  2. Connection 객체 생성 : JDBC 드라이버가 정상적으로 로딩되면 DriverManager를 통해 데이터베이스와 연결되는 세션인 Connection 객체를 생성
  3. Statement 객체 생성 : Statement 객체는 작성된 SQL 쿼리문을 실행하기 위한 객체로 정적 SQL 쿼리 문자열을 입력으로 가짐
  4. Query 실행 : 생성된 Statement 객체를 이용하여 입력한 SQL를 실행
  5. ResultSet 객체로부터 데이터 조회 : 실행된 SQL 쿼리문에 대한 결과 데이터 셋
  6. ResultSet, Statement, Connection 객체 Close : JDBC API를 통해 사용된 객체들은 생성된 객체들을 사용한 순서의 역순으로 Close

JDBC API

  • 장점
    • 데이터베이스로부터 데이터의 XML형식을 자동으로 생성
    • 쿼리, 프러시저를 지원
    • ODBC 드라이버가 설치된 데이터베이스는 접근 가능

 

  • 단점
    • 쿼리 실행 이전, 이후에 많은 코드 작성 필요( 커넥션, 스테이트먼트, 연결, 해제 등)
    • 데이터베이스 로직에 있는 코드 관리 위해 예외 작성
    • 여러 개의 데이터베이스로부터 코드 반복이라는 작업 필요

표준화의 한계

JDBC 등장으로 개발자들은 많이 편리했졌으나 일반적인 부분만 공통화되어 DBMS마다 특성들을 모두 표준화하기 한계가 있습니다.

DB 변경 시 JDBC 코드는 변경하지 않아도 SQL의 쿼리문은 해당 DB에 호환되도록 수정이 필요합니다.

728x90
반응형

'백수 > java' 카테고리의 다른 글

10. Servlet과 JSP를 비교해서 설명하세요  (0) 2023.07.25
직렬화  (0) 2023.07.18
버블 정렬  (0) 2023.07.13
싱글톤 패턴  (0) 2023.07.13
1. OOP가 뭐죠?  (0) 2023.07.12