欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybaits中模糊查询like中注意的点(#与$)

程序员文章站 2022-04-03 08:26:13
...

如果采用:

Like '%#{参数}$'

会报错,因为#{parameterName}引用参数的时候,Mybatis会把这个参数认为是一个字符串,并自动加上‘’

而采用以下方法:

Like '%${参数}$'

可以解决!

但是:

#{}是经过预编译的,是安全的。

而${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。

解决方法:连接字符串,取出中间的‘字符

使用concat函数解决问题!

LIKE concat(concat('%',#{参数}),'%')

MySQL中concat函数
使用方法:
concat(str1,str2,…)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。