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

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


Category

  신훈재(2004-06-18 14:01:43, Hit : 6249, Vote : 1562
 [자바] 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");

      
      






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
18   [Java/PHP] [자바] ResultSet 질의결과  신훈재 2004/06/18 6111 1317
  [Java/PHP] [자바] Select예제  신훈재 2004/06/18 6249 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 5436 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