1. 程式人生 > 其它 >mybatis常用指令碼示例

mybatis常用指令碼示例

mysql:

1.批量插入

    <insert id="insertProcessSyncList">
        INSERT INTO t_process_sync
            (id,loan_kind,loan_side,process_id,external_id,step,is_hangup,is_init,last_success_time,last_failure_time,remark,handle_count)
        VALUES
        <foreach collection="list" item="element"
index="index" separator=","> ( #{element.id}, #{element.loanKind}, #{element.loanSide}, #{element.processId}, #{element.externalId}, #{element.step}, #{element.isHangup}, #{element.isInit}, #{element.lastSuccessTime}, #{element.lastFailureTime}, #{element.remark}, #{element.handleCount} )
</foreach> </insert>

2.部分欄位更新

    <update id="updateProcessBatch"  parameterType="com.vcredit.fts.process.model.dto.UpdateProcessRequest">
        UPDATE t_process_sync
        <trim prefix="set" suffixOverrides=",">
            <if test="step!=null">step=#{step},</
if> <if test="isHangup!=null">is_hangup=#{isHangup},</if> <if test="isInit!=null">is_init=#{isInit},</if> <if test="remark!=null">remark=#{remark},</if> <if test="handleCount!=null">handle_count=#{handleCount},</if> <if test="deleted!=null">deleted=#{deleted},</if> <if test="lastSuccessTime!=null">last_success_time=#{lastSuccessTime},</if> <if test="lastFailureTime!=null">last_failure_time=#{lastFailureTime},</if> </trim> WHERE process_id=#{processId} AND external_id IN <foreach collection="externalIds" separator="," item="item" open="(" close=")">#{item}</foreach> </update>

3.條件查詢

    <select id="getProcessSyncList" resultType="com.vcredit.fts.process.model.po.ProcessSyncPO">
        SELECT * FROM t_process_sync
        WHERE process_id=#{processId}
        AND step=#{step}
        AND is_init IN(-1,1)
        <if test="limitTime!=null and limitTime!=''">
            AND (last_success_time IS NULL OR last_success_time &lt; #{limitTime})
        </if>
        AND handle_count &lt;= #{handleCount}
        AND is_hangup=0
        AND (last_failure_time IS NULL OR last_failure_time &lt; (CURRENT_TIMESTAMP - INTERVAL 10 MINUTE))
        AND deleted=0 LIMIT #{queryCount}
    </select>