什麼是 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 <= #{newTime} AND creat_time >= #{newTime}
上述SQL語句就能正常執行了。
當然,還有一種比較特殊的方法,也是xml所支持的標籤方式,即<![CDATA[ ]]>標識。採用這種方式的話,則兼容所有比較符號。
XML只有5個轉義符: < >& " '
上面對應的字符分別是<,>,&,",';的轉義字符
繪製成表格可能更好理解。
< |
< |
小於號 |
> |
> |
大於號 |
& |
& |
和 |
' |
’ |
單引號 |
" |
" |
雙引號 |
以上就是xml文件中的轉義符,如果遇到類似問題,可以根據上述的表格,快捷的替換掉SQL中的比較。
學習幫助
在工作和學習的過程中,不可避免地會遇到各種問題,從官方文檔去獲取幫助信息,往往比其他方式還要方便。