java - 如何将sql结果集传递给两个方法?

标签 java mysql sql resultset

我想将 sql 结果集传递给两个方法。问题是两种方法分别执行 while(rs.next) 函数。然后在一个方法执行其他方法后得到 0 个结果集。如何将结果集传递给两种方法?

    public void demo(){
    /* Result set got from the corpusSentenceRetrive method */
    ResultSet rsNew=corpusSentenceRetrive(wordAll);
    method1(rsNew);
    method2(rsNew);
    }

   public void method1(ResultSet rst){
   ResultSet rs = rst;

   while (rs.next()) {....}
   }
   public void method2(ResultSet rst){
   ResultSet rs = rst;

   while (rs.next()) {....}
   }

当一个方法执行时,另一个方法接收到 0 个结果集。我想执行两者。我该如何解决?

我尝试存储结果集数组列表两个位置并使用这两个位置结果集。但这也没有解决问题。

最佳答案

消费ResultSet中的数据在一个方法中并返回 List<Whatever> whateverList , 然后使用这个 whateverList在您的方法中使用真实数据。

另一种方法可能是使用 ResultSet.TYPE_SCROLL_SENSITIVE在创建您的 Statement 时或 PreparedStatement并在调用第一个方法之后和调用第二个方法之前转到第一行。

IMO 我会使用前者而不是后者。

关于java - 如何将sql结果集传递给两个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174752/

相关文章:

php - PHP 和 Javascript 聊天室的 sql 数据库中的时间戳关闭

java - 如何检查操作系统是否符合 POSIX

mysql - 如何更改mysql中的日期格式?

Java逻辑运算符短路

mysql - 从结果中选择

sql - 使用 InnoDB 进行全文搜索

mysql - sql建表不起作用

mysql - Sequelize 和 mysql : clause `[tableName].deleted_at IS NULL` getting added automatically

java - 如何编写一个将在后台监听已经创建的客户端套接字?

Java perl文件删除/删除超过n天的文件