当前位置:Gxlcms > 数据库问题 > Mysql存储过程(Java)

Mysql存储过程(Java)

时间:2021-07-01 10:21:17 帮助过:34人阅读

procedure tb_pro(out op int) begin set op = 10 end

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   参数   例子   

人气教程排行