mysql存储过程以及java中如何调取存储过程

mysql存储过程以及java中如何调取存储过程

mysql存储过程

随便使用了一张现有表customs,实现简单的存储过程
在这里插入图片描述

  1. 改变声明语句结束符号,默认为分号,这里自定义为$
mysql> delimiter $
  1. 声明存储过程(业务逻辑为删除操作)
mysql> create procedure proc_del(in usid integer)
    -> begin
    -> delete from customs where userid=usid;
    -> end$
  1. 改回语句结束符
mysql> delimiter ;
  1. 调用 call
mysql> call proc_del(3);

调用完毕查找表内容,可以发现userid为三的表内容被删除了
在这里插入图片描述
以上即是最为简单的mysql存储过程,这里我们可以把复杂的业务逻辑通过其隐藏起来,通过直接调用实现功能

java调取存储过程

//mysql声明存储过程

mysql> delimiter $

mysql> create procedure proc_sum(in num1 integer,in num2 integer,out he integer)
    -> begin
    -> set he=num1+num2;                                                                  
    -> end$ 
    
mysql> delimiter ; 

//java中调取

public class myhheoru {
    public static void main(String[] args) throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.56.20:3306/mydemo","root","ok");
        //调存储过程
        CallableStatement cs = conn.prepareCall("{call proc_sum(?,?,?)}");
        cs.setInt(1,20);
        cs.setInt(2,30);
        cs.registerOutParameter(3, Types.INTEGER);
        cs.execute();
        System.out.println(cs.getInt(3));

//        PreparedStatement pstat = conn.prepareStatement("select func_sum(?,?) as res"); //写语句调取
//        pstat.setInt(1,20);
//        pstat.setInt(2,30);
//        ResultSet rs = pstat.executeQuery();
//        while (rs.next()){
//            System.out.println(rs.getInt("res"));
//        }
        conn.close();
    }
}

结果展示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值