Mybatis如何调用存储过程和函数


一、procedure

Mybatis调用存储过程

 

 如上图所示是procedure的参数,IN代表入参,OUT代表出参,IN OUT既可以作为入参又可以作为出参

(1)procedure的入参和出参可以封装为一个实体类,调用procedure后,出参自动赋值到实例中

    <resultMap id="BaseResultMap" type="com.huarun.bjjghis.entity.ReserveTimeRegInfo">
        <result property="wxOrderId" column="orderid" javaType="string" jdbcType="VARCHAR"></result>
        <result property="tsStartTime" column="beginyysj" javaType="string" jdbcType="VARCHAR"></result>
        <result property="tsEndTime" column="endyysj" javaType="string" jdbcType="VARCHAR"></result>
        <result property="deptCode" column="l_ksdm" javaType="string" jdbcType="VARCHAR"></result>
        <result property="drCode" column="l_ysdm" javaType="string" jdbcType="VARCHAR"></result>
        <result property="timeSlice" column="l_zblb" javaType="int" jdbcType="INTEGER"></result>
        <result property="registrationTime" column="l_ghsj" javaType="string" jdbcType="DATE"></result>
        <result property="lockTime" column="l_shsj" javaType="string" jdbcType="DATE"></result>
        <result property="status" column="Zt" javaType="string" jdbcType="VARCHAR"></result>
        <result property="errorMsg" column="err" javaType="string" jdbcType="VARCHAR"></result>
        <result property="hisRegNo" column="his_reg_no" javaType="string" jdbcType="VARCHAR"></result>
        <result property="mdFlag" column="md_flag" javaType="int" jdbcType="INTEGER"></result>
    </resultMap>

(2)procedure调用

    <select id="reserveTimeRegInfo" parameterType="com.huarun.bjjghis.entity.ReserveTimeRegInfo" resultMap="BaseResultMap" statementType="CALLABLE"> { call sp_sh(#{wxOrderId, mode=IN, jdbcType=VARCHAR}, #{tsStartTime, mode=IN, jdbcType=VARCHAR}, #{tsEndTime, mode=IN, jdbcType=VARCHAR}, #{deptCode, mode=IN, jdbcType=VARCHAR}, #{drCode, mode=IN, jdbcType=VARCHAR}, #{timeSlice, mode=IN, jdbcType=INTEGER}, to_date(#{registrationTime, mode=IN}, 'yyyy-mm-dd hh24:mi:ss'), to_date(#{lockTime, mode=IN}, 'yyyy-mm-dd hh24:mi:ss'), #{status, mode=OUT, jdbcType=VARCHAR}, #{errorMsg, mode=OUT, jdbcType=VARCHAR}, #{hisRegNo, mode=OUT, jdbcType=VARCHAR}, #{mdFlag, mode=OUT, jdbcType=INTEGER}) } </select>

 

二、Function

    <select id="getSchCount" parameterType="java.util.Map" statementType="CALLABLE"> {#{l_sl, mode=OUT, jdbcType=INTEGER} = call F_GETGHSYSL_wx(to_date(#{l_gzrq, mode=IN, jdbcType=DATE}, 'YYYY-MM-DD'), #{l_ksdm, mode=IN, jdbcType=VARCHAR}, #{l_ysdm, mode=IN, jdbcType=VARCHAR}, #{l_yysj, mode=IN, jdbcType=VARCHAR}, #{l_jssj, mode=IN, jdbcType=VARCHAR}, #{l_zblb, mode=IN, jdbcType=INTEGER}) } </select>

在service传入Map到Dao

        parameterMap.put("l_gzrq", regDate); parameterMap.put("l_ksdm", deptCode); parameterMap.put("l_ysdm", drCode); parameterMap.put("l_zblb", l_zblb); parameterMap.put("l_yysj", null); parameterMap.put("l_jssj", null); parameterMap.put("l_sl", 0);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM