zoukankan      html  css  js  c++  java
  • MyBatis动态SQL中trim标签的使用

     


    My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少。

    事实上trim标签有点类似于replace效果。

    trim 属性

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

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

                    prefixOverrides:前缀判断的条件

                    suffixOverrides:后缀判断的条件

    比如:

    Java代码  收藏代码
    1. select b.* from sys_menu b where 1 = 1  
    2.   
    3. <trim suffix="WHERE" suffixOverrides="AND | OR">  
    4.     <if test="id != null and id !='' ">  
    5.         AND b.id =#{id}   
    6.     </if>  
    7.     <if test="name != null">  
    8.         AND b.menu_name like #{name}  
    9.     </if>  
    10. </trim>     

    最终sql打印为:

    select b.* from sys_menu b where 1 = 1 AND b.menu_name like '' WHERE

    从结果可以发现:

    Java代码  收藏代码
    1. <trim suffix="WHERE" suffixOverrides="AND | OR">  

    suffix是针对符合suffixOverrides的SQL语句追加后缀suffix值。

    总而言之:

          

          

    Java代码  收藏代码
    1. <trim suffix="WHERE" suffixOverrides="AND | OR">  

          And  sqlxxx

     最终结果是:

         And  sqlxxx WHERE

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

  • 相关阅读:
    VC++:创建,调用Win32静态链接库
    VC++:创建,调用Win32动态链接库
    C++生成和解析XML文件
    C++实现16进制字符串转换成int整形值
    一个好隐蔽的C/C++代码bug
    【C++札记】标准模板库string
    Rabbitmq C++客户端 Rabbitmq Client
    C++:标准模板库map
    C++:标准模板库vector
    C++:标准模板库(STL)
  • 原文地址:https://www.cnblogs.com/zengda/p/5118701.html
Copyright © 2011-2022 走看看