mybatis中#{}与${}

来源:互联网 发布:手机做题软件 编辑:程序博客网 时间:2024/04/27 00:34

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

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


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

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





0 0
原创粉丝点击