mysql 存储过程能返回多个表吗? 如题就是返回多个select如果能的话,在java如何调用返回的多个不同的表? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和其它数据库不同,没办法直接返回记录集。只能在你的JAVA程序中一个一个处理了。 能!!!我告诉你怎么实现!!第一步:写你的存储过程 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都返回一个结果集,查询中的处理方式就是如上。这是最科学的处理方式。 mysql LOAD_FILE如何写中文路径和中文名称? 关于MySQL的Threads_connected不断增加的问题 能否用mysql在两个数据库之间传送文件? 还是那个老问题 mysql 下的.err 文件太大 怎么处理? mysql xp连接vista mysql 建表 mysql中,外键约束的问题~~在线等答案~~^_^ ▲▲▲▲请问大家我该怎样解除数据表的锁定?▲▲▲▲▲ 4万条记录让我下岗!一个解决不了的问题(给分) 急。。。mysql,root帳號問題 谁能给个mysql 下载地址??
我告诉你怎么实现!!
第一步:写你的存储过程
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都返回一个结果集,查询中的处理方式就是如上。
这是最科学的处理方式。