[JAVA] JDBC
key word : JDBC, DB, Java API, DB 연동
JDBC
Java언어와 DB를 연동하려고 할 때 사용하는 통신 규약, protocol이다. Java API이고, SQL 쿼리를 사용할 수 있게 해준다.
JDBC를 이용한 개발 과정을 크게 6단계로 나눠볼 수 있다.
JDBC 개발 과정
-
DB 실행
- 연동할 DB가 서버에서 실행중이어야한다.
- 연동할 DB가 서버에서 실행중이어야한다.
-
Driver 설치
- ORACLE, MySQL 등 각각의 DBMS에 맞는 드라이버를 설치해야한다.
- DriverManager를 이용해 설치된 driver class를 로딩한다.
- driver class는 system property의
jdbc.drivers
를 참조한다.
-
DB 접속
- IP(url) / ID / PW 를 이용해 DB에 접속하는 Connection 객체를 생성한다.
- IP(url) / ID / PW 를 이용해 DB에 접속하는 Connection 객체를 생성한다.
-
SQL문장 실행
- Statement 또는 PreparedStatement API를 이용해 DB에 쿼리를 날릴 수 있는 객체를 생성한다.
- Statement
- Statement로 SQL문장을 실행할 경우, 실행할 때마다 DB가 SQL 문장을 분석, 검증한 후 각 DB에 맞게 변환하는 작업을 진행한다.
- 고정 SQL 문장을 가지고 객체가 생성된다
- PreparedStatement
- PreparedStatement를 사용하여 SQL문장을 실행할 경우, 첫 실행시 DB가 SQL 문장을 분석, 검증하고 각 DB에 맞게 변환하는 작업을 진행한다. 그 이후 실행에는 이미 변환된 자원을 사용한다.
- 객체 생성시
?
를 사용하여 다양한 변수를 설정할 수 있다. 객체 생성 이후.setInt
,.setString
등의 메소드를 이용해 변수 설정이 가능하다. .setString
을 이용하면 작은 따옴표가 붙은 문자열의 형태로 변수가 전달되므로 테이블명에는 사용할 수 없다.
- Statement
- CURD에 해당하는 각각의 메소드를 구현한다.
- Statement 또는 PreparedStatement API를 이용해 DB에 쿼리를 날릴 수 있는 객체를 생성한다.
-
SQL문장 실행 결과 활용
- executeQuery
- select query를 날릴 때 사용한다.
- ResultSet 객체를 반환한다.
- executeUpdate - insert, update, delete query를 날릴 때 사용한다. - 영향을 받은 row의 수(int)를 반환한다.
- executeQuery
-
DB 접속 해제
- Connection, Statement, ResultSet 등의 자원을 반환한다.