mybatis 中 like 模糊查询 遇到的问题

引言

在写mapper的时候,需要进行模糊查询,我写成如下图的形式,结果报了sql语句的错误,我检查半天,感觉应该是where语句出错了
mybatis 中 like 模糊查询 遇到的问题

于是问了度娘,参考了这位老哥的文章
https://blog.csdn.net/zhenwei1994/article/details/81876278

mybatis中对于使用like来进行模糊查询的几种方式:

1. 如果参数使用${...}形式

mybatis 中 like 模糊查询 遇到的问题

注意:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错
mybatis 中 like 模糊查询 遇到的问题
弊端:可能会引起sql的注入,平时尽量避免使用${...}

2. 如果参数使用#{...}形式

mybatis 中 like 模糊查询 遇到的问题

注意:用双引号将 % 括起来,不能使用单引号 '',不然会查不到任何结果。

3. 使用CONCAT()函数连接参数形式

mybatis 中 like 模糊查询 遇到的问题

结束语

这位老哥很细心,还附带两篇其他网友写的挺好的关于$与#的理解:

1、mybatis中的#{}和${}区别:

https://blog.csdn.net/u013552450/article/details/72528498/

2、prepareStatement的预编译和防止SQL注入:

https://www.cnblogs.com/yaochc/p/4957833.html

上一篇:类型和类型之间的关系


下一篇:微信小程序如何属性赋值?