본문 바로가기

Database

[JDBC Programming] SQL 중급 (edwith 데이터베이스 강의 - 부산대학교 김연정 교수님)

 

 


 

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 객체를 반환함.