这是用于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");

最佳答案

您需要为第二个Statement创建一个全新的单独的ResultSet。每次从单个ResultSet中获得一个新的Statement时,每个先前打开的stmt2.close()都将被关闭。

更换

rs = stmt.executeQuery(querystring );


通过

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


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



与具体问题无关,您是否考虑过仅对两个查询进行并使用Javabeans表示模型?这样,您最终将获得单个查询和更多的自文档代码。

关于java - 想要访问第一个查询的结果集以进行第二个查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7592969/

10-13 06:46