mybatis常用指令碼示例
阿新 • • 發佈:2021-08-25
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 < #{limitTime}) </if> AND handle_count <= #{handleCount} AND is_hangup=0 AND (last_failure_time IS NULL OR last_failure_time < (CURRENT_TIMESTAMP - INTERVAL 10 MINUTE)) AND deleted=0 LIMIT #{queryCount} </select>