mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)
mybatis中對于使用like來進行模糊查詢的幾種方式:
(1)使用${...}
注意:由于$是參數(shù)直接注入的,導致這種寫法,大括號里面不能注明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語句時候,會在變量外側(cè)自動加單引號' ?',所以這里 % 需要使用雙引號" ?",不能使用單引號 ' ?',不然會查不到任何結(jié)果。
(3)使用CONCAT()函數(shù)連接參數(shù)形式
附帶兩篇其他網(wǎng)友我的覺得寫的挺好的關(guān)于$與#的理解:
1、mybatis中的#{}和${}區(qū)別:
https://blog.csdn.net/u013552450/article/details/72528498/
2、prepareStatement的預編譯和防止SQL注入:
https://www.cnblogs.com/yaochc/p/4957833.html
————————————————
版權(quán)聲明:本文為CSDN博主「槐月十九」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhenwei1994/article/details/81876278
總結(jié)
以上是生活随笔為你收集整理的mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网商贷存在风险贷不出来什么意思
- 下一篇: java怎么判断字符串是否为空的几种方法