引言
在写mapper的时候,需要进行模糊查询,我写成如下图的形式,结果报了sql语句的错误,我检查半天,感觉应该是where语句出错了
于是问了度娘,参考了这位老哥的文章
https://blog.csdn.net/zhenwei1994/article/details/81876278
mybatis中对于使用like来进行模糊查询的几种方式:
1. 如果参数使用${...}形式
注意:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错
弊端:可能会引起sql的注入,平时尽量避免使用${...}
2. 如果参数使用#{...}形式
注意:用双引号将 % 括起来,不能使用单引号 '',不然会查不到任何结果。
3. 使用CONCAT()函数连接参数形式
结束语
这位老哥很细心,还附带两篇其他网友写的挺好的关于$与#的理解:
1、mybatis中的#{}和${}区别:
https://blog.csdn.net/u013552450/article/details/72528498/
2、prepareStatement的预编译和防止sql注入:
https://www.cnblogs.com/yaochc/p/4957833.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。