Mybatis 动态SQL常用标签

IF:其实在上一篇文章中已经有IF了这里把它拿过来是为了更好的衔接

  <select id="addBlog2" parameterType="map" resultType="Blog">
        select * from mybatis.blog where 1=1
        <if test="title != null">
             and title=#{title}
        </if>
        <if test="author !=null" >
            and author =#{author}
        </if>
    </select>

choose(When,otherwise)

 select * from mybatis.blog
        <where>
          <choose>
              <when test="title !=null">
                   title=#{title}
              </when>

              <when test="author !=null">
                  and author=#{author}
              </when>

              <otherwise>
                  and views=#{views}
              </otherwise>

          </choose>
        </where>

这个语句呢只要成立一个呢就会执行当前那个然后就不去走下面的了然后就结束了,这和java中的switch循环相同

trim(where,set)

 select * from mybatis.blog
        <where>
            <if test="title != null">
                title=#{title}
            </if>
            <if test="author !=null" >
                and author =#{author}
            </if>
        </where>
  • 这里给大家说明一下标签的作用这个标签的作用呢就是让你的SQL呢变得更加的安全会自动给你判断一些语句。
  • 给大家把官方的话拿过来帮助大家更好的理解:where元素只会在至少有一个子元素的条件返回SQL子句的情况下才去插入“WHERE”子句。而且,若语句的开头为“AND”或者“OR”,where元素也会将它们去除。
 <update id="updateBlog" parameterType="map">
        update mybatis.blog
        <set>
            <if test="title!=null">
                title=#{title},
            </if>
            <if test="author!=author">
                and author=#{author}
            </if>
        </set>
        where id=#{id}
    </update>
  • set元素会动态前置SET关键字,同时也会删掉无关的逗号。
  • 动态SQL,本质还是SQL语句,只是我们可以在SQL层面,去执行一个逻辑代码
  • 一些逻辑语句: if ,choose ,when
  • 安全语句:where,set保证你SQL安全运行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值