(1) 정의
JVM과 DB 시스템
(DBMS : DataBase Management System)을 연결하고 통신하기 위한 Java 표준스펙
(2) JDBC 프로그래밍 순서 (구형방식 old type)
<1> Driver 를 메모리에 로딩 (DriverManager)
<2> DB와 연결 (Connection 객체 생성)
<3> SQL 구문(쿼리) DBMS 로 전송 (Statement 객체 생성)
<4> 쿼리 실행 (ResultSet 객체 생성 혹은 결과값 받음)
<5> ResultSet 객체에서 원하는 값을 추출 (select 쿼리일 경우)
<6> 사용한 객체들을 닫아준다.(close() IO 개념)
(3) Connection 생성 두가지 방법
<1>DriverManager : Class.forName 으로 driver의 객체를 만들면 그객체가
자동으로 DriverManager 에 등록된다.
<2> DataSource : JNDI lookup을 일반적으로 사용하나 물론 사용하지 않을 수도 있다.
-JNDI :
Java Naming and Directory Interface
특정한 이름으로 시스템의 특정 리소스나 객체에 접근 가능하게 해주는 기술
(4) Connection Pooling
일반적으로 Connection 을 생성하는 일이 많아질 경우 (DB에 접속이 많아질 경우)
DB에 과부하가 심해진다.
그러한 과부하를 줄여보고자 Connection 을 미리 만들어 놓고 그것을 필요에 따라서
내어주고 돌려받는 방식
2. 주요 인터페이스
(1) Connection
JDBC 코딩의 시발점 (DB와 연결)
(2) Statement
<1> 생성
conn.createStatement();
<2> 실행
[1] select
-> ResultSet rs = stmt.executeQuery(sql);
[2] insert/update/delete (DML)일경우
-> int result = stmt.executeUpdate(sql);
[3] 그외 sql 문일 경우 (alter, create.....)
-> boolean result = stmt.execute(sql);
(3) ResultSet
<1> 생성 : executeQuery()
<2> ResultSetMetaData : rs.getMetaData();
ResultSet 에 대한 지문 데이터
(컬럼 개수, 컬럼 타입 등을 알아냄)
<3> 실행 : rs.next() 커서 이동후 데이터 추출
(4) PreparedStatement
미리 sql 문이 세팅된 Statement 가 DB 에 전송되어져서
컴파일되고, SQL 문의 ? 부분만 나중에 세팅해서 실행하는
준비된 Statement
<1> 장점
반복적인 똑같은 SQL 문을 사용할때 Statement 보다
실행속도가 빠르다
(이유 : ? 를 제외한 SQL 문이 DB 에서 미리 컴파일되서 대기하고 있기 때문)
<2> 단점
서로다른 SQL 문을 실행하려면 각각 PreparedStatement 를 생성해줘야 한다.
(Statement 는 다른 SQL 문을 실행할때에 한개만 생성해서 재활용하는것이 가능
: stmt.executeQuery(sql1), executeUpdate(sql2) )
"JDBC" 카테고리의 다른 글
- 1. Connection (댓글 0개 / 트랙백 0개) 2008/07/22
- JDBC - 08 - 쿼리 분석기를 만들어보자 (2) - ResultSetMetaDa... (댓글 0개 / 트랙백 0개) 2008/12/08
- JDBC - 04 - 커넥션 연결 (3) OracleDataSource (댓글 0개 / 트랙백 0개) 2008/12/01
- JDBC - 03 - 커넥션 연결 (2) DriverManager (댓글 0개 / 트랙백 0개) 2008/12/01
- JDBC 정리 (계속 업데이트) (댓글 0개 / 트랙백 0개) 2008/07/22
- JDBC - 02 - 커넥션 연결 (1) DriverManager (댓글 0개 / 트랙백 0개) 2008/12/01
- JDBC - 07 - 쿼리 분석기를 만들어보자 (1) - ResultSetMetaDa... (댓글 0개 / 트랙백 0개) 2008/12/08
- JDBC - 05 - JDBC 의 기본적인 틀 / ResultSet (댓글 0개 / 트랙백 0개) 2008/12/02
- JDBC - 06 - DML 문장을 날려보자 (1) insert, update (댓글 0개 / 트랙백 0개) 2008/12/03
- 1. Connection (댓글 0개 / 트랙백 0개) 1970/01/01



댓글을 달아 주세요