Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere JDBC 驱动程序 » 使用 JDBC 访问数据

 

返回结果集

本节介绍如何从 Java 方法获得一个或多个结果集。

您必须编写一个用于向调用环境返回一个或多个结果集的 Java 方法,并将此方法包装在 SQL 存储过程中。以下代码段说明如何才能向调用 SQL 代码返回多个结果集。它使用三个 executeQuery 语句获得三个不同的结果集。

public static void Results( ResultSet[] rset )
       throws SQLException
{
    // Demonstrate returning multiple result sets

    Connection con = DriverManager.getConnection(
                    "jdbc:default:connection" );
    rset[0] = con.createStatement().executeQuery(
        "SELECT * FROM Employees" +
        "   ORDER BY EmployeeID" );
    rset[1] = con.createStatement().executeQuery(
        "SELECT * FROM Departments" +
        "   ORDER BY DepartmentID" );
    rset[2] = con.createStatement().executeQuery(
        "SELECT i.ID,i.LineID,i.ProductID,i.Quantity," +
        "       s.OrderDate,i.ShipDate," +
        "       s.Region,e.GivenName||' '||e.Surname" +
        "   FROM SalesOrderItems AS i" +
        "   JOIN SalesOrders AS s" +
        "   JOIN Employees AS e" +
        "   WHERE s.ID=i.ID" +
        "        AND s.SalesRepresentative=e.EmployeeID" );
    con.close();
}
可用源代码

此代码段是位于 samples-dir\SQLAnywhere\JDBC 目录中的 JDBCExample 类的一部分。

注意
  • 此服务器端 JDBC 示例使用当前连接(使用 getConnection)与缺省的运行数据库建立连接。

  • executeQuery 方法返回结果集。

♦  运行 JDBC 结果集示例
  1. 使用 Interactive SQL,以 DBA 身份连接到示例数据库。

  2. 确保已安装 JDBCExample 类。

    有关安装 Java 示例类的详细信息,请参见准备示例

  3. 定义一个名为 JDBCResults 的存储过程,该存储过程充当类中 JDBCExample.Results 方法的包装:

    CREATE PROCEDURE JDBCResults()
      DYNAMIC RESULT SETS 3
      EXTERNAL NAME 'JDBCExample.Results([Ljava/sql/ResultSet;)V'
      LANGUAGE JAVA;
  4. 设置以下 Interactive SQL 选项,以便您可以查看查询的所有结果:

    1. 从 [工具] 菜单中选择 [选项]。

    2. 单击 [SQL Anywhere]。

    3. 单击 [结果] 选项卡。

    4. 将 [要显示的最大行数] 的值设置为 5000

    5. 选择 [显示所有结果集]。

    6. 单击 [确定]。

  5. 如下所示调用 JDBCExample.Results 方法:

    CALL JDBCResults();
  6. 分别检查以下这三个结果选项卡:[结果集 1]、[结果集 2] 和 [结果集 3]。