zoukankan      html  css  js  c++  java
  • ibatis (六) dynamic的用法

    view plain copy print?

    1. dynamic可以去除第一个prepend="and"中的字符(这里为and),从而可以帮助你实现一些很实用的功能。具体情况如下:  
    2.   
    3. 1.使用dynamic  
    4.   
    5. 1.1 xml  
    6. select * from Person表  
    7.         <dynamic prepend="where">  
    8.                 <isNotNull property="name" prepend="and">  
    9.                     name=#name#  
    10.                 </isNotNull>  
    11.                 <isNotNull property="sex" prepend="and">  
    12.                     sex=#sex#  
    13.                 </isNotNull>                
    14.         </dynamic>  
    15.   
    16. 1.2 结果  
    17.   
    18. 当name、sex都非null时打出如下的sql语句:  
    19. select Person表 where (and) name= ? , and sex= ?  
    20.   
    21. 显然name前的and被自动去除了,很方便吧。  
    22.   
    23. 2.不使用dynamic  
    24.   
    25. 2.1 xml  
    26. 如果我把dynamic 去掉就会变的很恶心,如下:  
    27. select * from Person表         
    28.                 <isNotNull property="name" prepend="and">  
    29.                     name=#name#  
    30.                 </isNotNull>  
    31.                 <isNotNull property="sex" prepend="and">  
    32.                     sex=#sex#  
    33.                 </isNotNull>            
    34.   
    35. 2.2 结果  
    36. 当name、sex都非null时打出如下的sql语句:  
    37. select Person表 where and name= ? , and sex= ?  
    38. 显然name前多个and,sql语句错误。  
    39.   
    40. 3.总结  
    41. dynamic 会自动去除第一个 prepend="and中的内容(这里为and),从而方便一些操作。

    解決and存在問題 在开发过程 中 sql 语句后面写上where 1=1

    这样就算不适用dynamic 也不需要消除and 就可以使用sql语句不会报错

     SELECT *
       FROM (SELECT ROWS_.*, ROWNUM ROWNUM_
               FROM (select user_id,
                            user_name,
                            status,
                            user_type,
                            organ_id,
                            login_name,
                            password,
                            tel,
                            email,
                            sex
                       from sys_user
                      where 1 = 1
                        and sys_user.user_id = 114833
                      order by user_id) ROWS_
              WHERE ROWNUM <= 10)
      WHERE ROWNUM_ >= 1

  • 相关阅读:
    C语言枚举类型(C语言enum用法)详解
    基础练习 报时助手
    怎么将CAD转JPG?教你两种CAD转JPG方法
    CAD图纸怎么看?这两种方法值得看
    某酒店建筑设计CAD施工图
    CAD怎么算面积?这种方法你要知道
    怎么将DWG转PDF?分享一个在线转换方法
    如何使用CAD删除命令?怎么删除图纸中线段
    CAD制图软件哪个好?试试这两个就知道了
    CAD制图初学入门如何学好CAD?CAD大神总结5点诀窍,必须收藏
  • 原文地址:https://www.cnblogs.com/hpj1038361347/p/6991627.html
Copyright © 2011-2022 走看看