ResultSet rowcount 구하기

java 2014. 3. 14. 10:23

ResultSet은 불편하게도 총 건수를 구하는 method를 제공하지 않는다.. ㅡ_ㅡ


그러다 보니 다음과 같은 꼼수..  라고 하기는 좀 그러지만..  아래와 같이 구한다..


        String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";    

        String user = "muse";

        String passwd = "muse";

        Connection conn;

        Statement stat; 

        ResultSet rs = null;

        int rowcount = 0;

        Class.forName("oracle.jdbc.driver.OracleDriver");

        conn = DriverManager.getConnection (url, user, passwd);


        stat = conn.prepareStatement("select * from tab1 where col1 = ?",

          ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)

        stat.setString(1,"ddd");

 

  //이러한  방법으로 rowcount를 구한다..

rs.last();

rowcount = rs.getRow();

rs.beforeFirst();



stat 생성시..  

ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE  추가하지 않고

conn.prepareStatement("select * from tab1 where col1 = ?");

선언하면..

rs.last(); 부분에서 

Invalid operation for forward only resultset : last 에러가 발생한다.


Posted by 무세1
,