MyBatis的学习总结:调用存储过程【参考】

一、创建存储过程

 存储过程的目的:统计edi_test_task 正在运行的任务和非运行的任务

MyBatis的学习总结:调用存储过程【参考】
CREATE DEFINER=`root`@`%` PROCEDURE `edihelper`.`SP_ISRunning_Count`(IN run_id  INT ,OUT num INT)
BEGIN
  IF run_id=0 THEN
        select count(*) from edi_test_task where is_running=true INTO num;
   ELSE
        select count(*) from edi_test_task where is_running=false INTO num;
    END IF;
END
MyBatis的学习总结:调用存储过程【参考】

二、SQL映射文件

MyBatis的学习总结:调用存储过程【参考】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.cn.mybatis.mapper.taskProMapper">
<!-- 方式一:参数直接写在代码中 -->
    <select id="spTkNo" resultMap="Map" statementType="CALLABLE">
         CALL edihelper.SP_ISRunning_Count(
         #{run_id,jdbcType=INTEGER,mode=IN},
         #{num,jdbcType=INTEGER,mode=OUT})
    </select>
    <!-- 方式二:参数 -->
    
    <select id="spTkNo" parameterMap="getTkCountMap" statementType="CALLABLE">
         CALL edihelper.SP_ISRunning_Count(?,?)
    </select>
    
     <parameterMap type="java.util.Map" id="getTkCountMap">
         <parameter property="sexid" mode="IN" jdbcType="INTEGER"/>
         <parameter property="usercount" mode="OUT" jdbcType="INTEGER"/>
     </parameterMap>
</mapper>
MyBatis的学习总结:调用存储过程【参考】
上一篇:DML数据操作语句和基本的DQL语句、python操作数据库


下一篇:DML-Insert