Mybatis映射文件 轉義問題


有沒有覺得在mybatis映射文件寫>(大於),<(小於)的時候賊麻煩,還得把“<”,">"換位為"&lt;", “&gt;”,映射文件不能直接寫>,必須經過轉義

eg:

映射文件中:select  name,age from  user where regis_time &gt; '2018-09-09'
(對應的sql腳本:
select name,age from user where regis_time > '2018-09-09'
)

很麻煩對不對,感覺轉以后,好像不認識了,有個標簽厲害了,幫你解決轉義。-<!CDATA[[]]>, 映射文件的sql就用下面的方式寫

select name,age from  user  where  regis_time <![CDATA[>]]> '2018-09-09'

  

 

<![CDATA[AND bill_date <= DATE_FORMAT(NOW(), '%Y-%m-%d')]]>
       在xml文件中<,>,& ,", '不能直接存儲,必須轉移為實體,如"&lt;", “&gt;”才能被保存進xml文檔,
      <!CDATA[[]]>的意思是遇到 <= ,>=這些運算符按照原文本寫入
 
再提供一個復雜的demo --  mysql查詢指定日期區間內的數據
MySQL 查詢時 date>= dateA  and date<= dateB,這個區間是左閉右開區間的,要想讓右閉需要用 date_sub(參數1, interval -1 day);
   sql腳本:
select name,age  from user where age >18 AND regist_time <= date_sub(DATE_FORMAT(#{endTime}, 'YYYY-mm-dd'),interval -1 day)

映射文件中的腳本
select name,age  from user where age >18
<![CDATA[ AND regist_time <= date_sub(DATE_FORMAT(#{endTime}, 'YYYY-mm-dd'),interval -1 day)]]>

  

    AND om.create_time &lt;= date_sub(DATE_FORMAT(#{endTime}, 'YYYY-mm-dd'),interval -1 day)
<![CDATA[ AND om.create_time <= date_sub(DATE_FORMAT(#{endTime}, 'YYYY-mm-dd'),interval -1 day)]]>
 
date_sub(param1, param2);  param1代表時間,param2代表要減去的天數, 這里傳個-1,則表示要減去-1,就表示+1


免責聲明!

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



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