노무현 대통령 배너

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 이라고 찍히는것을 볼 수 있다.

사용자 지정 10

select 문장일 경우엔 executeQuery 를 사용

(insert, update 일경우엔 다른 메소드 사용함)

select  문경일 경우에 한하여...

ResultSet 이 반환됨.

select 문의 결과를 반환하는데... set 계열은 중복도 없고 순서도 없다는걸기억하라...

중복되지 않는 값을 뽑아낸다.... 결과집합

rs.next(); 가  select 문의 결과를 한행(row ) 씩 가져옴

그래서~ rs.getString(1); 하면 첫행을 가져온다.


크리에이티브 커먼즈 라이센스
Creative Commons License

"JDBC" 카테고리의 다른 글


이 글의 관련글
2008/12/01 06:58 2008/12/01 06:58

트랙백을 보내세요

트랙백 주소 :: http://pippen80.cafe24.com/trackback/126

댓글을 달아 주세요

[로그인][오픈아이디란?]
비밀글 (Serect)
댓글 달기 (Submit)