通过 JDBC 驱动程序 - 使用多个结果集

系统 1588 0

使用返回多个结果集的内联 SQL 或 SQL Server 存储过程时,Microsoft SQL Server 2005 JDBC Driver 提供 SQLServerStatement 类的 getResultSet 方法,以检索返回的每个数据集。此外,当运行返回多个结果集的语句时,可以使用 SQLServerStatement 类的 execute 方法,因为它将返回一个 boolean 值,该值指示返回的值是结果集还是更新计数。
如果 execute 方法返回 true ,则运行的语句已返回了一个或多个结果集。通过调用 getResultSet 方法可以访问第一个结果集。若要确定是否提供了多个结果集,可以调用 getMoreResults 方法,如果提供了多个结果集,则该方法返回 boolean true 。如果有多个结果集可用,则可以再次调用 getResultSet 方法进行访问,继续使用这个过程直到所有的结果集都得到处理。如果 getMoreResults 方法返回 false ,则没有多个结果集要处理。
如果 execute 方法返回 false ,则所运行的语句返回了更新计数值,可以通过调用 getUpdateCount 方法检索此值。

注意:
有关更新计数的详细信息,请参阅 使用带有更新计数的存储过程


在下面的实例中,将向此函数传递 SQL Server AdventureWorks 示例数据库的打开连接,并构造一条 SQL 语句,该语句在运行后将返回两个结果集:

    public static void executeStatement(Connection con) {
   try {
      String SQL = "SELECT TOP 10 * FROM Person.Contact; _" +
                   "SELECT TOP 20 * FROM Person.Contact";
      Statement stmt = con.createStatement();
      boolean results = stmt.execute(SQL);
      int rsCount = 0;

      //Loop through the available result sets.
     do {
        if(results) {
           ResultSet rs = stmt.getResultSet();
           rsCount++;

           //Show data from the result set.
           System.out.println("RESULT SET #" + rsCount);
           while (rs.next()) {
              System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
           }
           rs.close();
        }
        System.out.println();
        results = stmt.getMoreResults();
        } while(results);
      stmt.close();
      }
   catch (Exception e) {
      e.printStackTrace();
   }
}
  




在这种情况下,返回的结果集的数目为 2。但是,如此编写代码是为了在返回了未知数目的结果集时,例如在调用存储过程时,这些结果集也会全部得到处理。若要查看调用返回多个结果集和更新计数的存储过程的实例,请参阅 处理复杂语句

注意:
调用 SQLServerStatement 类的 getMoreResults 方法时,会隐式关闭以前返回的结果集。

通过 JDBC 驱动程序 - 使用多个结果集


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论