jdbc调用存储过程

JDBC调用MYSQL存储过程

 
mysql无法返回游标
  • 参数IN
 
tt表结构:
CREATE TABLE tt (
  id int(11) DEFAULT NULL,
  name varchar(30) DEFAULT NULL
)
 
存储过程:
新增sizes+1条数据,name为params
CREATE PROCEDURE pro_insert2(in sizes int,in params varchar(30))
begin
declare i int;
start transaction;
set i = 0;
while i<=sizes do
insert into tt values(i,params);
set i=i+1;
end while;
commit;
end
 
java调用存储过程主要代码,两个参数都是IN:
Connection c;//此处省略创建c的过程
CallableStatement call = c.prepareCall("{call pro_insert2(?,?)}");
call.setInt(1, 3);//第一个参数是3
call.setString(2,"mike");//第二个参数是mike
call.execute();
 
  • 参数OUT
存储过程:
查询表tt内的记录条数,并返回该条数
CREATE PROCEDURE PRO_SELECT(out c int)
begin
select count(*) into c from tt;
end 
 
java代码:
CallableStatement call = c.prepareCall("{call pro_select(?)}");
call.registerOutParameter(1, java.sql.Types.INTEGER);
call.executeQuery();
System.out.println(call.getInt(1));

猜你喜欢

转载自zhangzhaoaaa.iteye.com/blog/1692180
今日推荐