ResulstSet이 닫혔는데... 닫히는 이유가 먼가요?

by 안지민 posted Jun 10, 2011

DROP CLASS JM_USR;
CREATE CLASS JM_USR (
    USR_ID      CHAR VARYING(253)       NOT NULL    PRIMARY KEY,
    USR_NCK     CHAR VARYING(253)       NOT NULL    UNIQUE,
    USR_PW      CHAR(22)                NOT NULL,
    USR_ATH     CHAR(22)                ,  
    USR_PT      NUMERIC(38, 8)          DEFAULT 0
);

 

 

 

 

  1 package jeemin;
  2
  3 import java.sql.*;
  4
  5 import cubrid.jdbc.driver.*;
  6
  7 public class Test1{
  8     public static void main(String[] args){
  9         try{
 10             Class.forName("cubrid.jdbc.driver.CUBRIDDriver");
 11             Connection conn = DriverManager.getConnection("jdbc:cubrid:localhost:33000:jeemin:::", "jeemin", "jeemin");
 12             PreparedStatement ps = conn.prepareStatement("SELECT JM_USR, USR_NCK, USR_PT FROM JM_USR WHERE USR_ID=? AND USR_PW=?");
 13             ps.setString(1, "test");
 14             ps.setString(2, "KFq5RI0nUe5X7Of3YsOQlQ");
 15
 16             CUBRIDResultSet rs = (CUBRIDResultSet)ps.executeQuery();
 17
 18             if(rs.next()){
 19                 System.out.println(rs.getString("USR_NCK"));
 20             }
 21
 22             CUBRIDPreparedStatement ps2 = (CUBRIDPreparedStatement)conn.prepareStatement("UPDATE JM_USR SET USR_ATH=? WHERE JM_USR=?");
 23             ps2.setString(1, "ABCDEFG");
 24             ps2.setOID(2, rs.getOID("JM_USR"));
 25             ps2.execute();
 26             ps2.close();
 27
 28             rs.getString("USR_NCK");
 29
 30             rs.close();
 31             ps.close();
 32             conn.close();
 33         }catch(Exception e){
 34             e.printStackTrace();
 35         }
 36    
 37     }
 38 }

 

 

 

 

cubrid.jdbc.driver.CUBRIDException: Attempt to access a closed ResultSet.
 at cubrid.jdbc.driver.CUBRIDResultSet.checkIsOpen(CUBRIDResultSet.java:1648)
 at cubrid.jdbc.driver.CUBRIDResultSet.findColumn(CUBRIDResultSet.java:670)
 at cubrid.jdbc.driver.CUBRIDResultSet.getString(CUBRIDResultSet.java:559)
 at jeemin.Test1.main(Test1.java:28)

 

 

 

 

28번째 라인에서 rs가 이미 닫혔다고 나옵니다.

 

정확하게 닫히는 이유가 먼가요?

 

 

 

 

cubrid에서는 세그먼트를 2개 열면 첫번째 세그먼트가 자동으로 닫히나요?

 

정확하게 어떤 경우에 닫히는지를 정의해 주실수 있나요?


Articles

16 17 18 19 20 21 22 23 24 25