MyBatis 中拼接字符串有两种方式。
推荐使用:
1、 使用CONCAT 函数
SELECT*FROMuserWHEREnameLIKECONCAT(CONCAT(’%’, #{name}), ‘%’)
不推荐使用:
2、 使用${ } 代替 #{ }
因为${ }直接传入SQL,而#{ }传入的是字符串带有引号
SELECT*FROMuserWHEREnameLIKE’%${name}%’
第二种方式不推荐使用不仅仅是因为它使用了 符 , 一 定 要 注 意 , 第 二 种 方 式 是 使 用 了 模 糊 查 询 , 并 且 符,一定要注意,第二种方式是使用了模糊查询,并且 符,一定要注意,第二种方式是使用了模糊查询,并且的内容为输入内容,从后端的角度来说这里的$内容是一个不确定的内容,可能会出现sql注入的风险,因此应该杜绝这种方式。
很多人不推荐 , 其 实 ,其实 ,其实的使用是要看场合的,例如数组遍历是可以使用的,因为 的 取 值 范 围 固 定 , 不 会 产 生 不 确 定 内 容 , 对 于 的取值范围固定,不会产生不确定内容,对于 的取值范围固定,不会产生不确定内容,对于的使用我是持中立态度的,因为它存在即合理,有用得到的地方,例如跨表分页等等。。。但是一定要注意,$一定不可以和不确定输入一起使用,这是大忌。