본문으로 바로가기

 

 

JDBC

자바 / JSP 프로그램 내에서 데이터베이스와 관련된 작업을 처리할 수 있도록 도와주는 자바 표준 인터페이스

DBMS의 종류에 상관없이 데이터베이스 작업을 처리

*JDBC를 사용한 JSP와 데이터베이스의 연동 순서*

(1) java.sql.* 패키지 임포트

(2) JDBC 드라이버 로딩

(3) 데이터베이스 접속을 위한 Connection 객체 생성

(4) 쿼리문을 실행하기 위한 Statement/PreparedStatement/CallableStatement 객체 생성

(5) 쿼리 실행

(6) 쿼리 실행의 결과 값 사용

(7) 사용된 객체 종료

JDBC 드라이버 로딩 및 DBMS 접속

1) JDBC 드라이버 로딩

드라이버 인터페이스를 구현하는 작업으로 class.forName() 메소드를 이용하여 JDBC 드라이버 로딩

- class.forName(String className);

- <init-param> 요소에 드라이버 이름을 설정

2) Connection 객체 생성

JDBC 드라이버에서 데이터베이스와 연결된 커넥션을 가져오기 위해 DriverManager클래스의 getConnection() 메소드를 사용

3) 데이터베이스 연결 닫기

- close() 메소드로 생성한 Connection() 객체 해제

- 데이터베이스 리소스를 사용하지 않기 위해 사용을 끝내자마자 리소스를 해제하는 것이 좋음

void close() throws SQLExepction

데이터베이스 쿼리 실행

1) Statement

- 정적인 쿼리에 사용

- 하나의 쿼리를 사용하고나면 더는 사용할 수 없다.

- 하나의 쿼리를 끝내면 close()를 사용하여 객체를 즉시 해제

why? 즉시 해제하지 않으면 무시할 수 없는 공간이 필요하며 페이지가 다른 작업을 수행하는 동안 멈추지 않음

Statement 객체의 메소드 종류

- executeQuery(String sql) : select문 실행할 때 사용

ResultSet executeQuery(String sql) throws SQLException

- executeUpdate(String sql) : 삽입, 수정, 삭제

ResultSet executeUpdate(String sql) throws SQLException

- close(): : Statement 객체 반환

2) PreparedStatement

- 동적인 쿼리에 사용

- 하나의 객체로 여러 번의 쿼리를 실행

- 동일한 쿼리문을 특정값만 바꿔서 여러 번 실행해야할 때, 매개변수가 많아서 쿼리문을 정리해야할 때 유용

PreparedStatement 객체의 메소드 종류

- executeQuery() : select문 실행할 때 사용

ResultSet executeQuery() throws SQLException

- executeUpdate() : 삽입, 수정, 삭제

ResultSet executeUpdate() throws SQLException

- close(): : PreparedStatement 객체 반환

쿼리문 실행 결과 값 가져오기

[statement]

ResultSet executeQuery(String sql) throws SQLException

[preparedstatement]

ResultSet executeQuery() throws SQLException

ResultSet 객체의 메소드 종류

메소드

반환유형

설명

getXxx(int ColumnIndex)

XXX

설정한 ColumnIndex의 필드 값을 설정한 XXX 형으로 가져옴

getXxx(String ColumnName)

XXX

설정한 ColumnName의 필드 값을 설정한 XXX 형으로 가져옴

absolute(int row)

boolean

설정한 row행으로 커서 이동

befroeFirst()

void

첫 번째 행의 이전으로 커서를 이동

afterLast()

void

마지막 행의 다음으로 커서를 이동

first()

void

첫 번째 행으로 커서를 이동

last()

void

마지막 행으로 커서를 이동

next()

boolean

다음 행으로 커서를 이동

previous()

boolean

현재 행의 이전 행으로 커서를 이동

close():

void

ResultSet 객체를 반환할 때 사용