Mybatis动态SQL之set,where标签

同where标签功能类似,where用于去除第一个条件中出现的and前缀,那么set标签就是去除最后一个更新字段语句中出现的,[逗号]后缀。
where 和 set 完全都可以被trim替换使用,可以参考JavaEE互联网轻量级框架整合开发P157页。

where示例:

<select id="findByParam" resultMap="BaseResultMap" parameterType="map">
        select
        <include refid="Base_Column_List" />
        from users
        <where>
            <if test="userName != null  and userName != ''">
                and userName = #{userName}
            </if>
            <if test="userSex != null and userSex != ''">
                and user_sex = #{userSex}
            </if>
            <if test="nickName!= null and nickName!= ''">
                and nick_name = #{nickName}
            </if>
        </where>
</select>

若只传递了nickName,实际打印的sql如下。
在这里插入图片描述
打印的sql中 and 自动去掉了,无需在sql中添加“1=1”。

set示例:
mybatis使用注解方式

@Update({"<script>",
        "update role ",
        "<set>",
        " <if test='roleName != null'>role_name=#{roleName},</if>" ,
        " <if test='roleCode != null'>role_code=#{roleCode},</if>" ,
        "</set>",
        "where id=#{id}",
        "</script>"})
void update(Role role);

在这里插入图片描述
打印的sql中 更新第二个字段的 ,去掉了。

参考了他人的博客,地址如下
https://blog.csdn.net/u014268482/article/details/80625393

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值