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 有没有什么工具可以做到在2个不同机器的mysql 同名表找出不同的数据 触发器触发的条件是表还是字段? mysql用户权限问题 mysql下,能否按时间查询某张表里被修改了的数据 关于mysql的DSN连接的问题,请多指教! MYSQL下如何编译嵌入式程序? 嘿嘿,Mysql里用 LIKE '%s%' 对于中文等多字符的解决方法。。。。。 mysql索引操作 急。。。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都返回一个结果集,查询中的处理方式就是如上。
这是最科学的处理方式。