数据库中#{}与${}区别
来源:互联网 发布:skype ubuntu 编辑:程序博客网 时间:2024/04/20 00:28
${}和#{}的区别
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
原sql语句:
在这里用到了#{},使用#时:
1、用来传入参数,sql在解析的时候会加上" ",当成字符串来解析 ,如这里 role_id = "roleid";
2、#{}能够很大程度上防止sql注入;
延伸:
1、用${}传入数据直接显示在生成的sql中,如上面的语句,用role_id = ${roleId,jdbcType=INTEGER},那么sql在解析的时候值为role_id = roleid,执行时会报错;
2、${}方式无法防止sql注入,如验证用户名时通过t.NAME = ${abc or 1=1}就可以实现sql注入的目的;
3、$一般用入传入数据库对象,比如数据库表名;
4、能用#{}时尽量用#{};
注意:
mybaties排序时使用order by 动态参数时需要注意,使用${}而不用#{};
阅读全文
0 0
- 数据库中#{}与${}区别
- 谈谈数据库中MyISAM与InnoDB区别
- Oracle中数据库与实例的区别
- 谈谈数据库中MyISAM与InnoDB区别
- 数据库中having 与where的区别
- 谈谈数据库中MyISAM与InnoDB区别
- 数据库中主键与索引的区别
- 数据库中''与null的区别
- 数据库中where与having区别~~~
- 数据库中MyISAM与InnoDB区别
- 数据库中主键与外间的区别
- 数据库中truncate与delete的区别
- 数据库中主键与索引的区别
- Oracle中数据库与实例的区别
- BIRT中使用SQLSERVER与ORACLE作为数据库的区别
- 数据库中union 与union all 的区别
- increment与identity在数据库中插入再删除区别
- SQL数据库与ACCESS数据中SQL语句的区别
- Hystrix使用Commond的三种方式
- 群辉NAS的Upstart服务与启动项管理
- java 不熟悉知识点归纳2
- 帆软报表非必填参数表达式
- laravel5.4系列之生成_ide_helper.php文件
- 数据库中#{}与${}区别
- html字符编码
- Hive 的collect_set使用详解
- LINUX驱动模型中bus与platform_bus区别和异同
- 逃离农场--动态规划
- H.264学习笔记之二(片及片头语法)
- [转]QColorDialog类
- 决策树
- 复杂链表的复制