【问题标题】:want access resultset of first query for second query想要访问第二个查询的第一个查询的结果集
【发布时间】:2011-09-29 05:47:38
【问题描述】:

这是用于 SQL 语句的 java 程序。我有两个疑问。第二个查询需要第一个查询的结果。

如何在第二个查询中调用它?
这些结果是 xml 标记的值。

我需要得到这个标签的第一个查询结果

child1.setAttributeNS(xlink,"xlink:type","");

但这位于第二个查询中,如果我尝试合并这两个查询,我会收到错误结果集关闭。

         while(rs1.next()){
        int i=0,j=0 ,locid,supid;
        int lc[]=new int[100];
        int sp[]=new int[100];
      lc[i] =   rs1.getInt(2);
        sp[j] =   rs1.getInt(1);
        lcid=lc[i++];*/
         for(i=0;i<loc[i];i++){
        for(j=0;j<sup[j];j++){
          lcid=lc[i];  spid=sp[j];
      System.out.print(spid +" ");
       System.out.println(lcid);
  String     s = (lc[i]==1 ? "simple" : (lc[i]>1 ? "extended" : null));

         System.out.println(s);            }}}

      String querystring=
          " ";


        rs = stmt.executeQuery(querystring );
   while(rs.next()){
        Element child1 = doc.createElement("slink");

                          /
        Element element = doc.createElement("loc");

【问题讨论】:

    标签: java sql jdbc


    【解决方案1】:

    您需要为第二个ResultSet 创建一个全新的独立Statement。每次你从一个Statement 中得到一个新的ResultSet,之前打开的每一个都将被关闭。

    替换

    rs = stmt.executeQuery(querystring );
    

    通过

    Statement stmt2 = connection.createStatement();
    rs = stmt2.executeQuery(querystring);
    

    不要忘记将stmt2.close() 添加到finally 块中。


    与具体问题无关,您是否考虑过 JOINing 两个查询并使用 Javabeans 来表示模型?这样,您最终会得到一个查询和更多的自记录代码。

    【讨论】:

    • 我如何创建单独的语句?
    • 与您创建第一个语句的方式相同。只给它一个不同的变量名:) stmt2 或其他东西。
    • 我不明白你不明白什么。您需要从第二条语句中获取第二个结果集。就是这样。
    • 对不起,我现在该睡觉了,如果你还想不通,我明天补上。再见!
    猜你喜欢
    • 2015-03-16
    • 2013-11-01
    • 1970-01-01
    • 2018-03-15
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2018-03-20
    相关资源
    最近更新 更多