1. 程式人生 > >mybatis中LIKE模糊查詢的幾種寫法以及注意點

mybatis中LIKE模糊查詢的幾種寫法以及注意點

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