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

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


Category

  신훈재(2004-06-18 14:01:43, Hit : 8477, Vote : 1640
 [자바] Select예제

[ Data Select ]

1. 결과가 한 레코드일 때 값 검사와 값 읽기
//-----------------------------------------------------------------------
Connection con = connMgr.getConnection ( "web" );
PreparedStatement pstmt = null;
try
{        
        String querySelect = "select password, username from " + db + " where id='" + id + "'";

        pstmt = con.prepareStatement ( querySelect );
        ResultSet rs = pstmt.executeQuery ( );

        if ( ! rs.next ( ) )
        { %>
                <script language="javascript"> alert ( "미등록 아이디입니다." );
                document.location.href="member.jsp";
                </script> <%
        }
        else
        {        
                String passwordUser = rs.getString ( "password" );
                String username = rs.getString ( "username" );                        

                if ( ! password.equals ( passwordUser ) )
                { %>
                        <script language="javascript"> alert ( "비밀번호가 틀립니다." );
                        document.location.href="/jsp/index.jsp";
                        </script> <%
                }
                else
                {
                        session.putValue ( "id", id );
                        session.putValue ( "username", username );
                        
                        response.sendRedirect ( "/jsp/index.jsp" );                
                }
        }                
        //con.commit ( );
        pstmt.close ( );
}
catch ( SQLException e ) { out.println ( toKorean ( e.toString ( ) ) ); }                 
finally { pstmt.close ( ); connMgr.freeConnection ( "web", con ); }                        
//-----------------------------------------------------------------------

2. 예제
/*******************************************************
create table test(
name varchar2(20),
no  number(8)
)
*******************************************************/

import db.*;
import java.io.*;
import java.text.*;
import java.util.*;
import java.io.IOException;
import java.sql.*;
import java.sql.SQLException;

public class jdbc4 {
public static void main(String[] args) {
   Connection conn= null;
   PreparedStatement ps =null;
   ResultSet rs =null;
   String stmt = null;
   String strRet = null;
   int    intRet = 0;

   // 1. jdbc driver 를 등록한다.
   try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
   } catch (ClassNotFoundException e ) {
    System.out.println(e);
   }

   // 2. DB와 연결한다.
   try{
    conn = DriverManager.getConnection(
           "jdbc:oracle:oci8:@","id","passwd");
   } catch (SQLException e) {
    System.out.println(e);
   }
  
  
   // 3. select
   try {
    ps = conn.prepareStatement("select name,no from test");
    rs   = ps.executeQuery();

    // ResultSet에 저장된 자료를 한 레코드 읽어온다.
    rs.next();
    strRet = new String( rs.getString("name").getBytes("KSC5601"),"8859_1");
    intRet = rs.getInt("no");
    System.out.println("name1 = " + strRet);
    System.out.println("no1   = " + intRet);

    // ResultSet에 저장된 자료를 한 레코드 읽어온다.
    rs.next();
    strRet = new String( rs.getString("name").getBytes("KSC5601"),"8859_1");
    intRet = rs.getInt("no");
    System.out.println("name2 = " + strRet);
    System.out.println("no2   = " + intRet);

   // 4.db를 닫는다.
    rs.close();
    ps.close();
    conn.close();

   } catch (SQLException e) {
     System.out.println(e);
   } catch (UnsupportedEncodingException e) {
     System.out.println(e);
   }
}

}
-------------------------------------------------
결과:

name1 = 자료a
no1   = 1
name2 = 자료b
no2   = 2
  
--------------------------------------------------
설명.
제가 사용하고 있는 DB는 oracle8i입니다.

1.jdbc driver 를 등록한다.
2.DB와 연결한다.
3.select

  ps = conn.prepareStatement("select name,no from test");
  rs   = ps.executeQuery();
  rs.next();
  intRet = rs.getInt("no");

  rs.next를 실행하여 한레코드씩을 읽어 오며,
  rs.getInt("필드이름"),rs.getString("필들이름")를 사용하여
  해당필들의 자료를 읽어들입니다.

4.db를 닫는다.
  rs.close();
  ps.close();
  conn.close();

  
참고:한글문제
현재 제가 사용하고 있는 DB의 language setting이 KSC5601이라 아래와 같이
자료를 컨버젼합니다.
strRet = new String( rs.getString("name").getBytes("KSC5601"),"8859_1");

      
      






183   [네트워크/보안] [참고] 다중연결(multiple sockets) 서버의 구현방법 종류  김영대 2003/07/17 10415 2177
182   [네트워크/보안] [참고] TCP 에서 사용되는 효율향상 알고리즘  김영대 2004/07/16 10229 2032
181   [네트워크/보안] [참고] TCP 에서 사용되는 내부 타이머  김영대 2004/07/13 10100 1861
180   [Java/PHP] [자바] 활용팁(오라클)  신훈재 2004/06/18 6363 1680
179   [Java/PHP] [자바] 오라클 각종 에러  신훈재 2004/06/18 6919 1926
178   [Java/PHP] [자바] 여러종류의 데이타베이스 테스트 소스  신훈재 2004/06/18 7030 1550
177   [Java/PHP] [자바] 시스템 프로퍼티를 이용한 드라이버 로드  신훈재 2004/06/18 5847 1511
176   [Java/PHP] [자바] Update예제  신훈재 2004/06/18 5773 1427
  [Java/PHP] [자바] Select예제  신훈재 2004/06/18 8477 1640
174   [Java/PHP] [자바] ResultSet 질의결과  신훈재 2004/06/18 6485 1392
173   [Java/PHP] [자바] Query Statement  신훈재 2004/06/18 8211 1571
172   [Java/PHP] [자바] JDBC-ODBC 연결 예제  신훈재 2004/06/18 10468 1779
171   [Java/PHP] [자바] JDBC 테스트 소스(오라클)  신훈재 2004/06/18 5797 1423
170   [Java/PHP] [자바] JDBC 코딩시 주위사항(jsp, servlet)  신훈재 2004/06/18 8027 1451
169   [Java/PHP] [자바] JDBC Connect  신훈재 2004/06/18 11079 1583
168   [Java/PHP] [자바] Insert 예제  신훈재 2004/06/18 6859 1765
167   [Java/PHP] [자바] DB 컨넥션 풀  신훈재 2004/06/18 10327 1974
166   [Delphi] [소스] 한글이 들어있는 문자열에서 초성 음소로 검색하기  김영대 2004/10/23 10360 2200
165   [Delphi] [소스] 하루에 한번씩 자동으로 배경화면 바꾸기  김영대 2003/03/12 7467 1706
164   [Delphi] [소스] 폼의 내용을 그대로 저장하고 복원하는 콤포넌트  김영대 2003/03/12 7100 1741

1 [2][3][4][5][6][7][8][9][10]
 

Copyright 1999-2020 Zeroboard / skin by zero