mysql创建存储过程 mybatis调用

本文介绍了一个使用MySQL创建的存储过程,该过程用于根据输入的比赛ID及双方队伍得分来更新比赛记录表中的得分情况。通过定义游标遍历比赛记录,并判断是否符合输入得分条件来实现得分计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


创建存储过程

drop procedure IF EXISTS computeScore;
create procedure computeScore(


     p_matchId     VARCHAR(30),          -- 赛事ID
     p_homeValue     VARCHAR(30),        -- 主队得分
     p_visiteValue   VARCHAR(30))        -- 客队得分
    
 


BEGIN 
DECLARE done INT DEFAULT 0;
DECLARE a INT;
DECLARE score INT DEFAULT 0;
DECLARE cur1 CURSOR FOR select matchId,homeValue,visiteValue from ball_match where matchId=p_matchId; 
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;


 OPEN cur1;
 REPEAT
    FETCH cur1 INTO m,h,v;
    if NOT done THEN
   if h==p_homeValue and v==p_visiteValue then
set score = score+3;  
  end if;
update ball_match set score = score where mathchId = m;
end if;
  UNTIL done END REPEAT;
  CLOSE cur1;

END ;


mybaits 调用存储过程

<update id="computeScore" statementType="CALLABLE"  parameterType="EnterResult">
   <![CDATA[
           {call computeScore (
           #{matchId,mode=IN,jdbcType=INTEGER},
           #{homeValue,mode=IN,jdbcType=INTEGER}
           }
       ]]>
</update>










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值