JDBC란?
Java Database Connectivity
자바 프로그램이 데이터베이스와 연결되어 데이터를 주고 받을 수 있게 해주는 프로그래밍 인터페이스
JDBC 역할
- 통역자의 역할: 응요프로그램과 DBMS간의 통신을 중간에서 번역해주는 역할
- 데이터베이스 종류와 상관없음
java.sql Package
- java .sql.Driver
- DB와 연결하는 Driver class를 만들 때 반드시 implements해야 하는 Interface로 JDBC드라이버의 중심이 되는 Interface
- java.sql.Connection
- 특정 데이터베이스와 연결정보를 가지는 Interface
- DriverManager로부터 Connection객체를 가져옴
- java.sql.Statement
- SQL query문을 DB에 전송하는 방법을 정의한 Interface
- Connection을 통해 가져옴
- java.sql.ResultSet
- SELECT구문 실행 결과를 조회할 수 있는 방법을 정의한 Interface
- java.sql.PreparedStatement
- Statement의 하위 Interface
- SQL문을 미리 컴파일하여 실행 속도를 높임
- java.sql.CallableStatement
- PreparedStatement의 하위 Interface
- DBMS의 Stored procedure을 호출
JDBC개발단계
- JDBC Driver loading
- 데이터베이스 벤더와 맞는 드라이버를 호출
- 데이터베이스와의 연결을 위해 드라이버 로딩
- Connection
- DB와 연결을 위해 URL과 계정정보가 필요
- 연결 메소드로는 DriverManager.getConnection(url, id, pwd) : Connection
- Statement / PreparedStatement
- SQL구문을 정의하고 변경될 값은 치환문자를 이용해 쿼리전송전에 값을 setting함
- executeUpdate() or executeQuery()
- executeUpdate()는 SQL Query문이 INSERT, DELETE, UPDATE의 경우레 사용. 반환값의 타입은 int형
- executeQuery()는 SQL Query문이 SELECT의 경우에 사용. 반환값의 타입은 ResultSet
- ResultSet( SELECT의 경우 )
- 데이터베이스 조회 결과집합에 대한 표준
- next()를 통해 DB의 table안에 row한 줄을 불러옴
- getString(), getInt()를 통해 한 행의 특정 Column값을 가져옴
- close( Connection, Statement, ResultSet )
- Connection, Statement, ResultSet에 대해 close를 함
[참고](