JDBC

Soobin Kim·2024년 4월 5일

Java

목록 보기
28/47

Java DataBase Connectivity
Java에서 데이터베이스에 접속할 수 있도록 제공하는 API로, 모든 DBMS에서 공통적으로 사용할 수 있는 인터페이스와 클래스로 구성되어 있다.

  • DBMS를 선택한 후 그에 맞는 JDBC 드라이버를 설치하면 Java 어플리케이션은 JDBC를 통해 간접적으로 데이터베이스에 접근한다.

    • JDBC 드라이버: JDBC를 통해 데이터베이스와 통신할 수 있는 드라이버 소프트웨어로, 각 벤더들이 제공한 API이다. 이는 Java 프로그램이 데이터베이스와 통신할 때 사용되며, 한 번 로드된 JDBC 드라이버는 해당 Java 프로그램이 실행되는 동안 계속 사용된다.
    • 예를 들어, 오라클은 C:\app\사용자컴퓨터명\product\18.0.0\dbhomeXE\jdbc\lib 경로에서 드라이버인 odbc.jar 파일을 제공한다.

원리

  1. Java 어플리케이션에서 SQL문을 JDBC 인터페이스를 통해 DBMS에 전송한다.
  2. 구현 클래스인 JDBC 드라이버가 DBMS에 접속을 시도한다.
  3. DBMS에 SQL문을 수행하도록 한다.

JDBC를 이용한 데이터베이스 사용 절차

  1. URL로 지정된 JDBC 드라이버를 적재(load - 데이터베이스와 통신할 수 있는 드라이버 소프트웨어를 현재 실행 중인 Java 프로그램의 메모리에 로드하는 것)한다.
  2. 사용자 이름, 패스워드, 접속 URL을 가지고 데이터베이스에 연결한다.
  3. SQL문장을 작성하여 전송하고 실행한다. SQL 명령어의 결과로 생성되는 결과 집합을 얻는다.
  4. 결과 집합을 화면에 표시하거나 결과 집합을 처리한다. 사용이 끝나면 연결을 해제한다.

DB Connection 예시

public static Connection makeConnection() {

    String url = "jdbc:oracle:thin:@localhost:1521:xe";
    String id = "사용자";
    String password = "비밀번호";
    Connection con = null;

    try {
        // 벤더가 제공한 JDBC 드라이버. 
        Class.forName("oracle.jdbc.driver.OracleDriver");
        
        con = DriverManager.getConnection(url, id, password);
    } catch (ClassNotFoundException e) {
        System.out.println("드라이버를 찾을 수 없습니다.");
    } catch (SQLException e) {
        System.out.println("연결에 실패했습니다.");
    }
    return con;
}
  • Class.forName(): JDBC 드라이버를 적재한다.
  • DriverManager.getConnection(): Class.forName()을 통해 한 번 로드된 드라이버를 기억하고, 어플리케이션 내에서 다시 사용될 때 자동으로 해당 드라이버를 찾는다. 즉, JDBC 드라이버는 한 번 로드되면 DriverManager 클래스에 등록되고, 이후에 DriverManager에 의해 관리되어 어플리케이션에서 데이터베이스와의 연결을 요청할 때 해당 드라이버를 사용한다.
  • 이후 연결된 객체와 java.sql.*(DriverManager, Connection, Statement, ResultSet)을 사용하여 DB에 연결, 쿼리문 작성, 쿼리 결과 반환 등을 수행할 수 있다.

0개의 댓글