MyBatis中使用#{}和${}的区别
1 2 3 |
|
区别:
在动态SQL解析阶段,#{}会被解析为JDBC预编译语句的参数标记符(占位符),例如上面的#{}语句将被解析为:
1 |
|
而${}则直接解析为字符串变量替换,当变量id的传参为"xiaoming"时,上面的${}语句将被解析为:
1 |
|
也就是说,对于变量替换,#{}发生在DBMS中,而${}发生在动态SQL解析阶段。
实际使用:
1、当变量为表名时,只能使用${},这是因为#{}解析的占位符在进行变量替换时,会带上单引号' ',表名带单引号会导致SQL错误。
2、除了上面第1条之外,能用#{}的地方尽量用#{},这是因为相同的预编译SQL可以复用,用#{}能够节能开销提高性能;${}会引起SQL注入问题,例如:
1 |
|
当tableName为 " user; delete user; --"时,SQL将被解析为:
1 |
|
这样就造成了严重后果(-- 等于注释)。
参考:http://blog.csdn.net/pfnie/article/details/53230994
MyBatis中使用#{}和${}的区别相关推荐
- mybatis与php,浅谈mybatis中的#和$的区别
浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...
- 【mybatis】mybatis中 的# 和 $的区别
mybatis中 的# 和 $的区别 参考地址:https://www.cnblogs.com/sxdcgaq8080/p/10869144.html 转载于:https://www.cnblogs. ...
- MyBatis中selectByExample和selectByExampleWithBLOBs区别
MyBatis中selectByExample和selectByExampleWithBLOBs区别 先贴一段自动生成的Mapper代码 <select id="selectByExa ...
- 【MyBatis】MyBatis中#{}与¥{}的区别
文章目录 mybatis中#{}与¥{}的区别 mybatis中#{}与¥{}的区别 #{} 是预编译处理,像传进来的数据会加个" "(#将传入的数据都当成一个字符串,会对自动传入 ...
- [转]MyBatis中resultType与resultMap区别
MyBatis中关于resultType和resultMap的具体区别如下: MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap. res ...
- 浅谈 Mybatis中的 ${ } 和 #{ }的区别
1.美图 一.举例说明 select * from user where name = "dato"; select * from user where name = #{name ...
- mybatis中resultMap和resultType区别,三分钟读懂
先说结论: resultmap与resulttype的区别为:对象不同.描述不同.类型适用不同. 说人话就是,resultmap和resulttype功能差不多,但是resultmap功能更强大 re ...
- 【Mybatis中¥{}域#{}的区别】
#{}是预编译处理,${}是字符串替换. 详情: (1)mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值. (2)mybatis在 ...
- mybatis中的$与#的区别
#:占位符 $: 字符拼接符 占位符:占位符就是在某个地方占领一个位置,把它单独作为某个东西,比如这里就是把它作为 值. 字符拼接:字符拼接就是简单的对字符串拼接.没有特殊的其它含义. 当 sele ...
最新文章
- 中国现代化进程专题讲座——有感
- Windows Live Messenger 正式版已经发布
- 华硕主板X99-E WS/USB 3.1 Intel Realsense D435摄像头掉线是否与Intel推行的xhci有关?
- 第一次执行时没有问题,重复执行会出错、GP循环
- Oracle数据库日常管理之数据备份,恢复及迁移 (第五讲 )
- 微博开放第三方协议 媒体机构能重掌话语权吗?
- 七句话道出做人的底线【精辟】
- wps打印预览工具栏消失_在WPS电子表格中看不到打印预览怎么办?
- python爬虫详细-Python爬虫|Python爬虫入门(一):爬虫基本结构简单实例
- 网卡参数设置建议与各个网卡参数含义详解
- 横沥东莞注塑工艺需要考虑的7个因素
- 挑战华为社招:不止面试题,笔记源码统统都有,最强技术实现
- glibc 知:手册84:附录E:平台特定设施
- 【C/C++】多维向量vector
- [Luogu P3960] [UOJ 334] [NOIP 2017 tg]列队
- 网络知识点之-APR协议
- 部分期刊的缩写(计算机方向)、期刊缩写及其影响因子的查询方法
- 大学生HTML个人网页作业作品:基于html css实现围棋网页(带设计报告4800字)
- 中国移动互联网业的“云”端厮杀
- JAVA编写还款提醒短信的时间判断
热门文章
- 虚拟列表控件---加载大数据行
- java5年转c语言,时隔5年,C语言再次领先Java,荣登编程语言排行榜第一!
- 寻路机器人单片机程序示例_单片机精华程序代码示例:DS1302时钟程序
- 语言怎么绘画人物肖像_坦培拉绘画技法——油画简史
- java服务器测试_正确的方法来测试服务器是否在Java中运行?
- python字符串常用方法_字符串常用方法
- listView分批和分页加载数据
- android 一个activity定时更新另一个activity的UI
- 二、LInux系统安装Java
- 五十六、 白话讲解商业智能 BI、数据仓库 DW、数据挖掘 DM