080721--6-
(2) JDBC 프로그램밍 순서
<1> Driver 를 메모리에 로딩(DriverManager)(구형방식 old type)
<2> DB 와 연결(Connection 객체생성)
<3> SQL 구문(쿼리) DBMS로 전송 (Statement 객체생성)
<4> 쿼리 실행 (ResultSet 객체 생성 혹은 결과값 받음)
<5> ResultSet 객체에서 원하는 값을 추출 (select 쿼리일경우)
<6> 사용한 객체들을 닫아준다.(close()IO개념)
connection 객체를 생성해야합니다.
jdbc 는 java.sql 패키지에 있습니다.
api 문서에서 java.sql 패키지 를 보면 인터페이스가 많습니다.
실제 우리가 사용할것들도 여기의 인터페이스 들 입니다.
DriverManager Class 를보믄.... 이것을 이용하여 jdbc 드라이버를 로딩할 수 있음을 알 수 있습니다.
jdbc 프로그램에서 호출을 하여 데이터베이스에 있는 정보를 가져와서
사용자에게 뿌려줌
이런걸 가능하게 해주는것이 jdbc 이다.
네트웍이 필요 ( web 환경 )
통신하려면.... 일단 열어야한다!! 열어라!! 뭘??
Oracle JDBC API Reference 에서
oracle.jdbc 패키지의 OracleDriver 클래스를 보면.... 레지스트 하는 방법이 나옵니다.

아래로 조금 내려오면....

드라이버 타입 4가지가 있는데 thin 드라이버만 쓰므로 다른건 신경쓰지 않아도 됨
*** 오라클의 sid 를 까먹었을때.... ***
C:\oracle\ora92\network\admin 폴더에서
(10g 버전에선 약간 경로가 달라염)
tnsnames.ora 파일을 열어보면 나옵니다.
(service_name = xxx 이런식으로 나옵니다.)

연결이 잌쉡숀 없이 잘 되었습니다.~
080722--1-
드라이버 종류 4가지...
우리가쓰는 thin 드라이버는 type 3
대략적으로 보면...
type 1 --> odbc - c로 만들어짐
type 2 --> java반 c 반
type 3 --> thin - java로 만들어짐
type4 --> 분산 트렌젝션 지원...
thin드라이버를 계속 쓸거임...
<< JDBC 프로그램밍 순서 >>
<1> Driver 를 메모리에 로딩(DriverManager) (구형방식 old type)
<2> DB 와 연결(Connection 객체생성)
<3> SQL 구문(쿼리) DBMS로 전송
(Statement 객체생성)
<4> 쿼리 실행 (ResultSet 객체 생성 혹은 결과값 받음)
<5> ResultSet 객체에서 원하는 값을 추출
(select 쿼리일경우)
<6> 사용한 객체들을 닫아준다.(close()IO개념)
지금은 구형방식 ( Class.forName("oracle.jdbc.OracleDriver"); ) 을 나중에 test 로직을 만들때 사용한다.
현재는 잘 쓰이지는 않는 방식이다.
jdbc 에서
1번까지는 여러가지 방식이 있다.
하지만 2~6번까지의 과정은 거의 동일하다....
java 가 아닌 다른 랭귀지로 db 를 핸들링하는경우 db 가 바뀌면 (ex. mysql -> oracle) 정말 많은 변화를 잡아줘야하지만...
jdbc 에서는 거의 모든 과정이 동일 하기때문에.... 많은 변화가 필요가 없다.
( 1번과... db에 따른 쿼리 정도만 변경하면 됨)
위에서는 2 번 connection 연결까지 해보았다.
이제 statement 객체 생성을 하고, 간단한 쿼리를 실행하여보자.
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select 'my first connection' from dual");
rs.next();
String str = rs.getString(1);
System.out.println("str : "+str);
} catch (SQLException e) {
e.printStackTrace();
}
실행하면... my first connection 이라고 찍히는것을 볼 수 있다.

select 문장일 경우엔 executeQuery 를 사용
(insert, update 일경우엔 다른 메소드 사용함)
select 문경일 경우에 한하여...
ResultSet 이 반환됨.
select 문의 결과를 반환하는데... set 계열은 중복도 없고 순서도 없다는걸기억하라...
중복되지 않는 값을 뽑아낸다.... 결과집합
rs.next(); 가 select 문의 결과를 한행(row ) 씩 가져옴
그래서~ rs.getString(1); 하면 첫행을 가져온다.
"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



댓글을 달아 주세요