pstmt = baseDb.getConnection().prepareStatement(lsql.toString(),Statement.RETURN_GENERATED_KEYS);//

ResultSet rs = pstmt.executeQuery();
这样的结果集合是不可移动指针的,请问如何改
        

解决方案 »

  1.   

    PreparedStatement prepareStatement(String sql,
                                       int resultSetType,
                                       int resultSetConcurrency,
                                       int resultSetHoldability)
                                       throws SQLException创建一个 PreparedStatement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象。 
    此方法与上述 prepareStatement 方法相同,但它允许重写默认结果集类型、并发性和可保存性。 
    参数:
    sql - 一个 String 对象,它是将被发送到数据库的 SQL 语句,可以包含一个或多个 ? IN 参数
    resultSetType - 以下 ResultSet 常量之一:ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE 或 ResultSet.TYPE_SCROLL_SENSITIVE
    resultSetConcurrency - 以下 ResultSet 常量之一:ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE
    resultSetHoldability - 以下 ResultSet 常量之一:ResultSet.HOLD_CURSORS_OVER_COMMIT 或 ResultSet.CLOSE_CURSORS_AT_COMMIT 
    返回:
    一个包含预编译的 SQL 语句的新 PreparedStatement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象 
    抛出: 
    SQLException - 如果发生数据库访问错误,或者给定参数不是指示类型、并发性和可保存性的 ResultSet 常量例子:
    connection.prepareStatement("select * from test",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE,ResultSet.HOLD_CURSORS_OVER_COMMIT);
      

  2.   

    PreparedStatement 生成的语法不对。pstmt = baseDb.getConnection().prepareStatement(lsql.toString(),TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_READ_ONLY);//这句。ResultSet rs = pstmt.executeQuery();