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

 

 

轉自:http://cczakai.iteye.com/blog/1280866


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM