想要访问第二个查询的第一个查询的结果集

时间:2011-09-29 05:47:39

标签: java sql jdbc

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

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

我需要获得此标记的第一个查询结果

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

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

         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");

1 个答案:

答案 0 :(得分:2)

您需要为第二个Statement创建一个全新的单独ResultSet。每当您从单个ResultSet中获得新的Statement时,之前打开的每个rs = stmt.executeQuery(querystring ); 都将被关闭。

替换

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

通过

stmt2.close()

不要忘记将finally添加到JOIN块。


对具体问题

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