package ch22;

import java.sql.*;

import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ResultTreeType;

public class Ch2203
{
 public static void main(String[] args)
 {
  Connection conn = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String id = "admin2";
  /*
   * select문을 사용할 경우 ResultSet개체를 두어야 하며,
   * 사용하는 메서드는 executeQuery()를 사용한다.
   */
  try
  {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   String oUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
   conn = DriverManager.getConnection(oUrl, "jsp", "jsp");
   oUrl="";
   //String sql = "select * from admin";
   String sql = "select id as i, name as na, email, pwd from admin where id=?";
   pstmt=conn.prepareStatement(sql);
   pstmt.setString(1, id);
   
   //select문을 사요6ㅇ할 경우 executeQuery()를 사용하며
   //반드시 ResultSet 개체로 반환받아야 한다.
   rs = pstmt.executeQuery();
   //처음 레코드로 이동해야 컬럼을 ㅇ릭어들일수 있다.
   //re.next()는 다음요소로 이동할수 있으면 참을 반환하고
   //이동할수 없으면 거짓을 반환한다.
   
   while(rs.next())
   {
    //rs.getString("컬럼명")의 경우
    //컬럼의 값이 문자열일 경우 문자열로
    //읽어들여 반환한다.
    /*String id=rs.getString("id");
    String name=rs.getString("name");*/
    id=rs.getString("i");
    String name=rs.getString("na");
    String email=rs.getString("email");
    String pwd=rs.getString("pwd");
   
    /*System.out.println("id : "+id);
    System.out.println("name : "+name);*/
    System.out.println("i : "+id);
    System.out.println("na : "+name);
    System.out.println("email : "+email);
    System.out.println("pwd : "+pwd);
   }
   
   sql="select count(*) from admin";
   pstmt=conn.prepareStatement(sql);
   rs=pstmt.executeQuery();
   rs.next();
   //위의 SQL처럼 컬럼이름이 없는 경우에는 컬럼번호로 지정가능
   //ASP에서는 인덱스 0, JSP에서는 1.
   int count = rs.getInt(1);
   System.out.println("총갯수 : "+count);
  }
  catch (ClassNotFoundException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  catch (SQLException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  finally
  {
   try
   {
    rs.close();
    pstmt.close();
    conn.close();
   }
   catch (SQLException e)
   {
    // TODO 자동 생성된 catch 블록
    e.printStackTrace();
   }
   
  }
 
 }
}

Posted by 말없제이
,