::: 강좌/소스/문서 :::

강좌/소스/문서 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  신훈재(2004-06-18 14:03:32, Hit : 6111, Vote : 1317
 [자바] ResultSet 질의결과

[ ResultSet 질의결과 ]


   boolean next() : 결과 집합내의 현재 행을 하나 앞으로 이동시킨다 . 마지막 행까지 도달한 다음 거짓 (false)을 반환한다 .
        첫번째 행에 앞서 이 메소드를 호출해야 한다는 사실을 기억하라 .
   XXX getXXX(int columnNumber)
   XXX getXXX(String columnName) : ( XXX 는 int, double, String, Date 와 같은 자료형이다 .)
        열이름 s 나 열번호 c 를 갖는 열의 값을 명시된 형으로 변환하고 이를 반환한다 .모든 형변환이 합법적인 것은 아니다 .
   int findColumn(String columnName) : 열이름과 관련된 열의 색인을 제공한다 .
   void close() :  현재 결과 집합을 즉시 닫는다 .
   int getType() : ( JDBC2 ) 해당 결과 셋의 타입을 반환한다 ,
        TYPE_FORWARD_ONLY ,TYPE_SCROLL_INSENTIVE, TYPE_SCROLL_SENSITIVE 중 하나이다 .  
   int getConcurrency() : ( JDBC2 ) 해당 결과 셋의 concurrency 설정을 반환한다 .
        CONCUR_READ_ONLY 나CONCUR_UPDATABLE 상수 중 하나이다 .
   boolean previous() : ( JDBC2 )커져를 앞의 레코드로 이동한다 . 만일 커져가 레코드상에 위치하고 있다면 true를 반환한다 .
   int getRow() : ( JDBC2 ) 현재 레코드의 숫자를 얻을 수 있다 . 레코드는 1 부터 시작한다 .
   boolean absolute(int r) : ( JDBC2 ) 커져를 레코드 r 로 이동한다 . 만일 커져가 레코드상에 위치하고 있다면 true 를 반환한다 .
   boolean relative(int d) : ( JDBC2 ) 커져를 d 레코드 만큼 이동한다 . 만일 d 가 음수이면 뒤로 이동한다 .
        만일 커져가 레코드상에 위치하고 있다면 true 를 반환한다 .
   boolean first()
   boolean last() : ( JDBC2 ) 커져를 첫번째 레코드나 마지막 레코드로 이동한다 . 만일 커져가 레코드상에위치하고 있다면 true 를 반환한다 .
   void beforeFirst()
   void afterLast() : ( JDBC2 ) 커져를 첫번째 레코드나 마지막 레코드 다음으로 이동한다 .
   boolean isFirst()
   boolean isLast() : ( JDBC2 ) 커져가 첫번째나 마지막 레코드에 있는지 테스트한다 .
   void moveToInsertRow() : ( JDBC2 ) 커져를 삽입 레코드로 이동한다 .
        삽입 레코드는 updateXxx 와 insertRow 메소드를사용하여 새로운 데이터를 추가하기 위해 사용하는 특별한 레코드이다 .
   void moveToCurrentRow() : ( JDBC2 ) 커져를 삽입 레코드에서 moveToInsertRow 가 호출될 때 차지하고 있는 레코드로이동한다 .
   void insertRow() : ( JDBC2 ) 데이터베이스와 결과 셋에 삽입 레코드의 내용을 삽입한다 .
   void deleteRow() : ( JDBC2 ) 데이터베이스와 결과 셋에서 현재 레코드를 삭제한다 .
   void updateXxx(int column, Xxx date)  
   void updateXxx(String columnName, Xxx data) : ( Xxx 는 int,double,String,Date 같은 타입이다 .)
   previous() 이 메소드는 커져가 실제 레코드상에 위치하고 있다면 true 를 반환한다 .
        만일 첫번째 레코드이전에 위치하고 있다면 flase 를 반환한다 .
        여러분은 다음 명령어를 사용하여 레코드 숫자에 따라 앞뒤로 커져를 이동할 수 있다 .
   relative(n) 만일 n 이 양수이면 커져는 앞으로 이동하고 n 이 음수이면 뒤로 이동한다 . 만일 n 이 0이면 아무런 효과가 없다 .
        만일 커져가 현재의 레코드 셋 범주를 벗어나게 이동하고자한다면 n 의 부호에 따라
        마지막 레코드 이후 위치나 첫번째 레코드 이전 위치로 설정된다 . 그런 다음 , 메소드는 false 를 반환하고 커져는 이동하지 않는다 .
        만일 커져가 실제레코드상에 위치하고 있다면 메소드는 true 를 반환한다 .
        다른 방법으로 여러분은 특정 레코드 숫자로 켜져를 설정할 수 있다 :
   absolute(n) 여러분은 다음 호출로 현재의 레코드 숫자를 얻는다 .
   int n = rs.getRow()   결과 셋내의 첫번째 레코드는 숫자 1 이다 . 만일 반환 값이 0 이면 커져는 현재 레코드상에 있는 것이 아니다 .
        첫번째 레코드 앞이나 마지막 레코드 뒤에 위치하고 있다 .

- 사용법

  ResutlSet rs = stmt.executeQuery("Select * from tablename");
  질의를 수행 했을 때 일반적으로 ResultSet 타입의 객체를 반환한다.
  ResultSet은 레코드단위로 이루여져 있기때문에 레코드 키를 움직이면서 그 결과를 추출할 수 있다.

  while(rs.next()) //레코드를 이동시킨다.
  {
    String s = rs.getString(1);  //필드의 첫번째요소를 String형으로 받아낸다.
    int i = rs.getInt("ID"); //필드명이 ID인 현재의 레코드의 값을 받아 낸다.
  }

- 스크롤 가능하고 갱신가능한 결과 셋

  ResultSet 클래스의 next 메소드는 결과 셋내의 레코드들을 탐색한다 .
  일반적으로 여러분은 사용자들이 결과 셋내에서 앞 ,뒤로 이동할 수 있길 원한다 .
  그러나 JDBC1 에서 previous 메소드는 지원하지 않는다 .
  뒤로 반복 기능을 구현하길 원하는 프로그래머들은 결과 셋 데이터를 직접 캐쉬 해야 한다 .
  JDBC2 에서 스크롤 가능한 결과 셋은 결과 셋을 앞과 뒤로 이동하고 결과 셋내의 임의의 위치로 이동하게 해준다 .
  JDBC1 에서 여러분은 UPDATE 구문을 프로그램해야 한다 .
  JDBC2 에서는 결과 셋의 항목을 갱신할 수 있다 . 그리고 갱신 후 데이터베이스는 자동적으로 갱신된다 .

- 스크롤 가능한 결과 셋  
  
  질의로부터 스크롤 가능한 결과 셋을 얻기 위해 , 다음의 메소드를 사용하여 다른 Statement 객체를 얻어야 한다
  Statement stmt = con.createStatement(type, concurrency);

  PreparedStatement stmt = con.prepareStatement(command , type, concurrency);
  /*type 와 concurrency 의 가능한 값에 따라 스크롤가능한지 또는 업데이트 가능한지를 결정할 수 잇다. */
  Statement stmt = con.createStatement(ResultSet. TYPE_SCROLL_INSENTIVE,ResultSet.CONCUR_READ_ONLY);

- ResultSet type 값
  
  TYPE_FORWARD_ONLY 결과 셋이 스크롤되지 않는다 .
  TYPE_SCROLL_INSENTIVE 결과 셋은 스크롤되나 데이터베이스 변화에는 반응하지 않는다 .
  TYPE_SCROLL_SENSITIVE 결과 셋은 스크롤되고 데이터베이스 변화에 반응한다 .

- ResultSet concurrency 값
  
  CONCUR_READ_ONLY
  CONCUR_UPDATABLE

  갱신가능한 결과 셋을 얻기 위해 , 다음의 구문을 생성한다 .
  Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
  그런 다음 , executeQuery 호출에 의해서 반환되는 결과 셋들은 갱신가능하다.








23   [Java/PHP] [자바] DB 컨넥션 풀  신훈재 2004/06/18 9511 1857
22   [Java/PHP] [자바] JDBC-ODBC 연결 예제  신훈재 2004/06/18 9046 1672
21   [Java/PHP] [자바] 시스템 프로퍼티를 이용한 드라이버 로드  신훈재 2004/06/18 5487 1425
20   [Java/PHP] [자바] 오라클 각종 에러  신훈재 2004/06/18 6490 1671
19   [Java/PHP] [자바] 활용팁(오라클)  신훈재 2004/06/18 5997 1603
  [Java/PHP] [자바] ResultSet 질의결과  신훈재 2004/06/18 6111 1317
17   [Java/PHP] [자바] Select예제  신훈재 2004/06/18 6250 1562
16   [Java/PHP] [자바] Update예제  신훈재 2004/06/18 5414 1333
15   [Java/PHP] [자바] Insert 예제  신훈재 2004/06/18 6493 1673
14   [Java/PHP] [자바] Query Statement  신훈재 2004/06/18 7763 1468
13   [Java/PHP] [자바] JDBC Connect  신훈재 2004/06/18 6718 1489
12   [Java/PHP] [자바] JDBC 코딩시 주위사항(jsp, servlet)  신훈재 2004/06/18 6138 1357
11   [Java/PHP] [자바] 여러종류의 데이타베이스 테스트 소스  신훈재 2004/06/18 6421 1457
10   [Java/PHP] [자바] JDBC 테스트 소스(오라클)  신훈재 2004/06/18 5437 1345
9   [Java/PHP] [소스] snmp 를 이용한 시스템 가용율 구하기 예제  김영대 2003/12/01 9570 2092
8   [Java/PHP] [소스] Oolong 언어를 이용한 Factorial 계산 프로그램 예제  김영대 2003/11/10 6633 1683
7   [Java/PHP] [문서] Java Web Services Development Pack (JWSDP) 1.0 tutorial  김영대 2003/03/24 5851 1457
6   [Java/PHP] [문서] Java Swing v1.1.1 도움말  김영대 2003/03/24 5782 1470
5   [Java/PHP] [문서] Java Servlet Development Kit (JSDK) v2.3 도움말  김영대 2003/03/24 5520 1454
4   [Java/PHP] [문서] Java 2 SDK, Enterprise Edition (J2EE) 1.3.1 도움말  김영대 2003/03/24 5617 1469

1 [2]
 

Copyright 1999-2017 Zeroboard / skin by zero