mybatis中LIKE模糊查詢的幾種寫法以及注意點
阿新 • • 發佈:2019-01-12
mybatis中對於使用like來進行模糊查詢的幾種方式:
(1)使用${...}
注意:由於$是引數直接注入的,導致這種寫法,大括號裡面不能註明jdbcType,不然會報錯
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'VARCHAR' in 'class com.utry.ucsc.dao.bean.KnowledgeLibraryBean'
弊端:可能會引起sql的注入,平時儘量避免使用${...}
(2)使用#{...}
注意:因為#{...}解析成sql語句時候,會在變數外側自動加單引號' ',所以這裡 % 需要使用雙引號" ",不能使用單引號 ' ',不然會查不到任何結果。
(3)使用CONCAT()函式連線引數形式
附帶兩篇其他網友我的覺得寫的挺好的關於$與#的理解:
1、mybatis中的#{}和${}區別:
https://blog.csdn.net/u013552450/article/details/72528498/
2、prepareStatement的預編譯和防止SQL注入:
https://www.cnblogs.com/yaochc/p/4957833.html