时间:2021-07-01 10:21:17 帮助过:34人阅读
java操作:
CallableStatement cs = con.prepareCall(sql); cs.registerOutParameter(1, java.sql.Types.INTEGER);//注册存储过程的out型参数类型;使用之前必须注册; cs.execute(); System.out.println(cs.getInt(2)); //获取out的输出结果
2、获取查询结果集(来自select查询),且有多个结果集如何处理?
-- 存储过程SQL
create procedure bach_pro() begin select * from table1; select * from table2; end
java操作:
CallableStatement cs = con.prepareCall(sql); cs.execute(); ResultSet resultSet = cs.getResultSet(); //遍历第一个结果集 while(resultSet.next()){ System.out.println(resultSet.getInt(1)); // 输出结果集 } //获取下一个结果集 ResultSet rs2; while(cs.getMoreResults()){ rs2 = cs.getResultSet(); while (rs2.next()) { System.out.println(rs2.getInt(1)); //输出结果集列 } }
3、当我们要在存储过程中处理查询结果集时,我们就需要使用到cursor,下面是cursor一个简单的使用例子
begin declare stop int default 0 ;--需要在cursor前声明参数 declare id_temp int; declare cur1 cursor for (select id from xinguan); declare continue handler for not found set stop = 1; --声明cursor扫描完后设置值,用于结束循环 open cur1; cur1_loop:loop fetch cur1 into id_temp; --从cursor中取值赋给变量 if stop then leave cur1_loop; end if; end loop cur1_loop; close cur1; end
Mysql存储过程(Java)
标签:.sql statement sel strong param 列表 handle 参数 例子