SQL server 读取某表行数以及报错ResultSet may only be accessed in a forward direction

来源:互联网 发布:企业资本结构优化 编辑:程序博客网 时间:2024/06/07 13:41
今天这个小小的问题难住我半天,(毕竟实习生水平)~~浪费光阴啊。不过总算解决了
        ResultSet may only be accessed in a forward direction   这个错误的引起是jTDS驱动中的TYPE_SCROLL_INSENSITIVE只支持只读操作,TYPE_SCROLL_SENSITIVE支持Update操作,但不支持另外的Insert
所以我们prepareStatement()函数的第二个参数用 TYPE_SCROLL_SENSITIVE比较好
                //某表的记录的行数
        
        public int CountRowNumber(String tableName){
                        //参数为表名
            try {
                   ResultSet rs = null;
                   String sql = "select * from "+tableName;
                   //Statement stmt = conn.createStatement();
                   PreparedStatement pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);            
                   rs = pstmt.executeQuery();
                   rs.last();
                   return rs.getRow();
                   } catch (SQLException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                      return -1;
                   }
             }
0 0
原创粉丝点击