Mybatis的mapper文件中涉及大於號小於號等特殊符號使用

什麼是 MyBatis?

MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)爲數據庫中的記錄。

關於mybatis的框架使用,現在是越來越火了,給大家帶來極大的便利,讓更多的程序員減少生成輪子的工作量。

Mybatis有哪些注意事項

但是,由於某些特殊的情況,大家可能沒有深入框架去理解,導致大家大家在使用mybatis的時候也給遇到一些問題。比如說,mybatis中的mapper文件是採用xml格式來作爲配置文件的,大部分的SQL都會寫在XXXmapper.xml文件中,不可避免地就會遇到xml文件地限制問題,比如特殊字符的轉義。在SQL中,我們對於比較的字符(>,<,<=,>=),就需要我們特殊處理了,發否則會在執行SQL的時候,報錯。

舉個栗子:

SELECT * FROM posts WHERE 1 = 1 AND update_time  <= #{newTime} AND creat_time >= #{newTime}

在mybatis的mapper文件中,應該調整爲:

SELECT * FROM posts WHERE 1 = 1 AND update_time  &lt;= #{newTime} AND creat_time &gt;= #{newTime}

上述SQL語句就能正常執行了。

當然,還有一種比較特殊的方法,也是xml所支持的標籤方式,即<![CDATA[   ]]>標識。採用這種方式的話,則兼容所有比較符號。 

XML只有5個轉義符: &lt; &gt;&amp; &quot; &apos;

上面對應的字符分別是<,>,&,",';的轉義字符

繪製成表格可能更好理解。

                     &lt;                       

                     <

                     小於號                             

                     &gt;

                     >                

                     大於號

                     &amp;

                     &

                     和

                     &apos;

                     ’

                     單引號

                     &quot;

                     "

                     雙引號

 以上就是xml文件中的轉義符,如果遇到類似問題,可以根據上述的表格,快捷的替換掉SQL中的比較。

學習幫助

在工作和學習的過程中,不可避免地會遇到各種問題,從官方文檔去獲取幫助信息,往往比其他方式還要方便。

Mybatis官方文檔

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章