如题就是返回多个select如果能的话,在java如何调用返回的多个不同的表?

解决方案 »

  1.   

    和其它数据库不同,没办法直接返回记录集。只能在你的JAVA程序中一个一个处理了。
      

  2.   

    能!!!
    我告诉你怎么实现!!
    第一步:写你的存储过程
     delimiter //
     create procedure test_proc ()
     begin
         select * from test_table1 where id=1;
         select * from test_table2 where id=2;
         select * from test_table3 where id=3;
     end;
     //
     delimiter ;
    call test_proc()这样就可以返回三个结果集,每个结果集对应一个select。
    那么在JAVA程序里面如何来取得这三个结果集呢?!
    这样做:
      boolean bl = false;
      ResultSet = null;
      Connection con = new Connection();
      con="得到一个有效的连接"
      String strSql="{CALL test_proc()}";
      CallableStatement cstm=con.prepareCall(strSql);
      bl=cstm.execute();----若存储过程被正常执行,并至少有一个结果集返回,则bl=true;否则就会是bl=false;
      while(bl){
        rs=cstm.getResultSet();---取得第一个结果集
        if(rs.next){
          System.out.println(rs.getInt(1));----打印出结果集的第一个字段
        }
        bl=cstm.getMoreResultSet();----继续去取结果集,若还还能取到结果集,则bl=true了。然后回去循环。
      }这样,就可以循环把结果集处理了,注意存储过程中每个SELECT都返回一个结果集,查询中的处理方式就是如上。
    这是最科学的处理方式。