MyBatis mysql 字符串拼接

"在MyBatis中,拼接字符串用于SQL查询时有两个常见方法。推荐使用CONCAT函数来避免SQL注入风险,例如`SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}
摘要由CSDN通过智能技术生成

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

推荐使用:

1、 使用CONCAT 函数

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

不推荐使用:

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

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

SELECT*FROMuserWHEREnameLIKE’%${name}%’

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值