mybatis标签

trim 用于去掉字符
prefix 前缀
prefixOverrides 去掉第一个标识符(跟在前缀后面第一个)

    <sql id="searchByPro">
        <trim prefix="WHERE" prefixOverrides="AND|OR">
            <if test="id != null AND id != ''">
                AND id = #{id}
            </if>
            <if test="taskId != null AND taskId != ''">
                AND task_id = #{taskId}
            </if>
            <if test="taskIdentifier != null AND taskIdentifier != ''">
                AND task_identifier = #{taskIdentifier}
            </if>
            <if test="processTime != null AND processTime != ''">
                AND process_time = #{processTime}
            </if>
            <if test="time != null AND time != ''">
                AND time = #{time}
            </if>

        </trim>
    </sql>

如果属性都不为空相当于

select *from A where id='' and task_id='' and task_identifier = '' and process_time = '' and time = ''

prefix 前缀
suffixOverrides 去掉最后一个符号

    <sql id="updateByPo">
        <trim prefix="SET" suffixOverrides=",">
            <if test="id != null">
                id = #{id},
            </if>
            <if test="taskId != null">
                task_id = #{taskId},
            </if>
            <if test="taskIdentifier != null">
                task_identifier = #{taskIdentifier},
            </if>
            <if test="processTime != null">
                process_time = #{processTime},
            </if>
            <if test="id != null">
                id = #{id},
            </if>
            <if test="time != null">
                time = #{time},
            </if>
        </trim>
    </sql>

如果属性不为空相当于

update A set id = '',task_id='',....,time=''

selectKey 用于解决insert是插入主键的值(参数不提供主键)

<selectKey keyProperty="目标属性" resultType="结果类型" order="BEFORE/AFTER">
      //
</selectKey>

需要注意order属性,像MySQL一类支持自动增长类型的数据库中,order需要设置为after才会取到正确的值,而Oracle一类取序列的情况,需要设置为before,否则会报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值