zoukankan      html  css  js  c++  java
  • MyBatis--动态SQL(trim的用法)

    MyBatis对动态SQL中使用trim标签的场景及效果介绍比较少。

     

    看起来有点难理解,简单点来说--trim标签有点类似于replace效果。

    trim标签有如下属性:

           prefix:前缀覆盖并增加其内容

           suffix:后缀覆盖并增加其内容

           prefixOverrides:前缀判断的条件

           suffixOverrides:后缀判断的条件

    通过百度以及自己测试:实践是检验真理的唯一标准!

    替代where标签:

      首先对UserMapper.xml中的SQL进行修改:

     

    替代set标签:(截图有限,直接上代码)

     1 <update id="updateById">
     2         update sys_user
     3         <trim prefix="SET" suffixOverrides="," suffix="where id =#{id}">
     4         <if test="userName != null and userName !=''">
     5             user_name =#{userName},
     6         </if>
     7         <if test="userPassword != null and userPassword != ''">
     8             user_password =#{userPassword},
     9         </if>
    10         <if test="userEmail != null and userEmail != ''">
    11             user_email =#{userEmail},
    12         </if>
    13         <if test="userInfo != null and userInfo != ''">
    14             user_info =#{userInfo},
    15         </if>
    16         <if test="headImg != null">
    17             head_img =#{headImg},
    18         </if>
    19         <if test="createTime != null">
    20             create_time =#{createTime},
    21         </if>
    22             id =#{id}
    23         </trim>
    24     </update>

    这样跟原来的where,set标签一对比,其实也就是一个替代作用!

    我不是很确认这种用法的具体场景,但是,就目前mybatis的动态sql语句来看的话,很多标签都足够用了。

  • 相关阅读:
    Gradle学习之基础篇
    springmvc上传文件方法及注意事项
    SpringCloud学习之feign
    SpringCloud学习之eureka集群配置
    SpringMvc+Spring+MyBatis 基于注解整合
    SpringBoot学习之SpringBoot执行器
    SpringBoot跨域问题解决方案
    SpringCloud学习之快速搭建分布式配置
    MySQL-Innodb存储结构
    PG-流复制
  • 原文地址:https://www.cnblogs.com/wx60079/p/13212333.html
Copyright © 2011-2022 走看看