mybatis中#{}与${}

#{}实现的是向 prepareStatement 中的预处理语句中设置参数值,sql语句中#{}表示一个占位符即?

${}是将参数值不加修饰的拼在sql中,相当中用jdbcstatement拼接sql,使用${}不能防止sql注入,但是有时用${}会非常方便。


使用占位符#{}可以有效防止sql注入,在使用时不需要关心参数值的类型mybatis会根据参数值的类型调用不同的statement设置参数值的方法。

${}不能防止sql注入,对系统安全性有很大的影响,如果使用${}建议传入参数尽量不让用户自动填写,即使要用户填写也要对填写的数据进行校验,保证安全性。另外,当传递单个值时${}中填写的参数名称经过测试填写value不错报。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值