JDBC(Java Database Connectivity)

  • 정의
    • Java를 이용한 DB 접속과 SQL 문장의 실행, 그리고 실행결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 대한 규약.
    • Java 프로그램내에서 SQL문을 실행하기 위한 자바 API.
    • SQL과 프로그래밍 언어의 통합 접근 형태.
  • Java는 표준 인터페이스인 JDBC API를 제공한다.
  • 데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC인터페이스를 구현한 드라이버(driver)를 제공한다.
    • 본인의 환경에서는 mysql이 제공한 인터페이스(드라이버)를 사용하면 된다.
  • Maven을 이용한 JDBC 드라이버 설치.
<dependency>   
    <groupId>mysql</groupId>   
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.45</version>
</dependency>



JDBC를 이용한 프로그래밍 방법

jdbc

  1. import java.sql.*;
  2. driver load
    • 본인의 환경(DB벤더)의 드라이버 로드.
       Class.forName("com.mysql.jdbc.Driver");
      
  3. Connection 객체 생성.
    • DB 접속.
       String dburl = "jdbc:mysql://localhost/dbName";
       Connection con = DriverManager.getConnection(dburl, ID, PWD);
      
  4. Statement 객체 생성 및 쿼리 수행.
     Statement stmt = con.createStatement();    
    
  5. SQL문에 결과가 존재한다면 ResultSet 객체를 생성한다.
     ResultSet rs = stmt.executeQuery("select no from user");
     while(rs.next())
         System.out.println(rs.getInt("no"));
    
    • 참고
    • stmt.execute("query")
      • any SQL.
    • stmt.executeQuery("query")
      • select.
    • stmt.executeUpdate("query")
      • insert, update, delete.
  6. 모든 객체 Close.
     rs.close();
     stmt.close();
     con.close();
    
  • 엄밀히 말하면 Connection, Statement, ResultSet은 인터페이스.
  • driver에 따른 객체를 사용한다.

JDBC 실습

  • JDBC를 활용하여 하나의 Table에 Select, Insert, Delete, Update 하는 실습을 진행.
    • Role Table의 하나의 투플과 매칭되는 DTO Class 작성.
    • Mysql JDBC Driver를 사용하여, Role Table에 접근하여 쿼리를 수행하는 DAO Class 작성.