0%

JDBC

JDBC란?

Java Database Connectivity

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

JDBC 역할

  • 통역자의 역할: 응요프로그램과 DBMS간의 통신을 중간에서 번역해주는 역할
  • 데이터베이스 종류와 상관없음

image

java.sql Package

  1. java .sql.Driver
    • DB와 연결하는 Driver class를 만들 때 반드시 implements해야 하는 Interface로 JDBC드라이버의 중심이 되는 Interface
  2. java.sql.Connection
    • 특정 데이터베이스와 연결정보를 가지는 Interface
    • DriverManager로부터 Connection객체를 가져옴
  3. java.sql.Statement
    • SQL query문을 DB에 전송하는 방법을 정의한 Interface
    • Connection을 통해 가져옴
  4. java.sql.ResultSet
    • SELECT구문 실행 결과를 조회할 수 있는 방법을 정의한 Interface
  5. java.sql.PreparedStatement
    • Statement의 하위 Interface
    • SQL문을 미리 컴파일하여 실행 속도를 높임
  6. java.sql.CallableStatement
    • PreparedStatement의 하위 Interface
    • DBMS의 Stored procedure을 호출

JDBC개발단계

  1. JDBC Driver loading
    • 데이터베이스 벤더와 맞는 드라이버를 호출
    • 데이터베이스와의 연결을 위해 드라이버 로딩
  2. Connection
    • DB와 연결을 위해 URL과 계정정보가 필요
    • 연결 메소드로는 DriverManager.getConnection(url, id, pwd) : Connection
  3. Statement / PreparedStatement
    • SQL구문을 정의하고 변경될 값은 치환문자를 이용해 쿼리전송전에 값을 setting함
  4. executeUpdate() or executeQuery()
    • executeUpdate()는 SQL Query문이 INSERT, DELETE, UPDATE의 경우레 사용. 반환값의 타입은 int형
    • executeQuery()는 SQL Query문이 SELECT의 경우에 사용. 반환값의 타입은 ResultSet
  5. ResultSet( SELECT의 경우 )
    • 데이터베이스 조회 결과집합에 대한 표준
    • next()를 통해 DB의 table안에 row한 줄을 불러옴
    • getString(), getInt()를 통해 한 행의 특정 Column값을 가져옴

image

  1. close( Connection, Statement, ResultSet )
    • Connection, Statement, ResultSet에 대해 close를 함

[참고](