1. JDBCB 사용 준비
JDBC 패키지 import하기
코드에는 나와있지 않지만 JDBC 관련 패키지를 사용하기 위해서 import 해야한다.
JDBC 드라이버 로드하기
데이터베이스에 접속하기 위해서는 드라이버를 적재해야 하는데 JDBC를 지원하는 데이터베이스 제품은 자바 프로그램에서 데이터베이스로 접근할 수 있게 해주는 JDBC 드라이버를 제공한다.
Class.forName ("oracle.jdbc.driver.OracleDriver");
Connection 객체 생성
connection 객체 생성하기 위해 참조 변수(conn) 하나를 선언하고 DriverManager.getConnection 메소드를 사용해서 객체를 하나 생성한다. 이때 세 개의 매개변수를 가진다.
"jdbc:oracle:thin:@db.tale.edu:2000:univdb" ->"[프로토콜] : [url(또는 머신이름)] : [포트번호] : [db이름]"
userid: 유저 id
passwd: 유저 password
Statement 객체 생성
Statement stmt = conn.createStatement();
Do Actual Work
실제 작업할 내용등 insert, select ...
Statement와 Connection 제거
stmt.close()
conn.close()
2. JDBC 주요 메소드 정리
Statement 객체
객체 | 메소드 | 기능 |
Statement | executeUpdate(string) | 쿼리문을 string 형태로 받아서 쿼리 수행, result set 반환 안함. insert, delete, update 주로 사용. DDL 또한 이렇게 사용. |
Statement | executeQuery(string) | 쿼리문을 string 형태로 받아서 쿼리 수행, result set 반환 함. select 주로 사용. |
ResultSet 객체
객체 | 메소드 | 기능 |
ResultSet | next() | 쿼리 결과의 tuple들을 가지고 있는 ResultSet 객체에 대해 Iteration 수행하여 True False 반환. |
ResultSet | getString(string or int) | string 또는 int의 순서에 해당하는 column의 값을 가져옴. 단 data의 type은 string. |
ResultSet | getFloat(string or int) | string 또는 int의 순서에 해당하는 column의 값을 가져옴. 단 data의 type은 Float. |
ResultSet | wasNull() | 현재 가리키고 있는 tuple의 값이 Null일 때 True를 반환. |
ResultSet | getMetaData() | ResultSet이 가지고 있는 메타 데이터에 대한 정보를 담고 있는 객체인 ResultSetMetaData 객체를 반환. |
ResultSetMetaData 객체
객체 | 메소드 | 기능 |
ResultSetMetaData | getColumnCount() | column의 개수 반환. |
ResultSetMetaData | getColumnName(int) | 매개변수의 순서에 있는 column 명을 반환. |
ResultSetMetaData | getColumnTypeName(int) | 매개변수의 순서에 있는 column type을 반환. |
PreparedStatement 객체
객체 | 메소드 | 기능 |
PreparedStatement | executeUpdate() | 가지고 있는 쿼리문을 실행한다. |
PreparedStatement | setString(int, string) | 첫 번째 매개변수에 해당하는 위치에 두 번째 매개변수를 대입. |
Connection 객체
객체 | 메소드 | 기능 |
Connection | prepareStatement(string) | string의 쿼리문을 가지고 있는 PreparedStatement 객체를 반환. |
Connection | setAutoCommit(bool) | 트랜잭션을 사용하기 위해서 SQL 문의 자동 커밋을 on/off 할 수 있음. |
Connection | commit() | 트랜잭션 반영. |
Connection | rollback() | 트랜잭션 이전의 상태로 돌아감. |
Connection | prepareCall(string) | DBMS에서 제공하는 시스템에 저장된 프로시저나 함수를 호출하는 것을 지원해준다면, 이 함수를 통해 호출할 수 있음. CallableStatement 객체를 반환함. |