MyBatis mysql 字符串拼接

MyBatis 中拼接字符串有两种方式。

推荐使用:

1、 使用CONCAT 函数

SELECT*FROMuserWHEREnameLIKECONCAT(CONCAT(‘%’, #{name}), ‘%’)

不推荐使用:

2、 使用${ } 代替 #{ }

因为${ }直接传入SQL,而#{ }传入的是字符串带有引号

SELECT*FROMuserWHEREnameLIKE’%${name}%’

第二种方式不推荐使用不仅仅是因为它使用了符 , 一 定 要 注 意 , 第 二 种 方 式 是 使 用 了 模 糊 查 询 , 并 且 符,一定要注意,第二种方式是使用了模糊查询,并且使的内容为输入内容,从后端的角度来说这里的$内容是一个不确定的内容,可能会出现sql注入的风险,因此应该杜绝这种方式。

很多人不推荐, 其 实 ,其实的使用是要看场合的,例如数组遍历是可以使用的,因为的 取 值 范 围 固 定 , 不 会 产 生 不 确 定 内 容 , 对 于 的取值范围固定,不会产生不确定内容,对于的使用我是持中立态度的,因为它存在即合理,有用得到的地方,例如跨表分页等等。。。但是一定要注意,$一定不可以和不确定输入一起使用,这是大忌。


版权声明:本文为web15085599741原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。