MyBatis中的#{}和${}有什么区别
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍了MyBatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在MyBatis 的映射
千家信息网最后更新 2024年11月28日MyBatis中的#{}和${}有什么区别
这篇文章主要介绍了MyBatis中的#{}和${}有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
前言
在MyBatis 的映射配置文件中,动态传递参数有两种方式:
1、#{} 占位符
2、${} 拼接符
#{} 和 ${} 的区别
区别1
#{} 为参数占位符 ?,即sql 预编译
${} 为字符串替换,即 sql 拼接
区别2、
#{}:动态解析 -> 预编译 -> 执行
${}:动态解析 -> 编译 -> 执行
区别 3、
#{} 的变量替换是在DBMS 中
${} 的变量替换是在 DBMS 外
区别 4、
变量替换后,#{} 对应的变量自动加上单引号''
变量替换后,${} 对应的变量不会加上单引号 ''
区别 5、
#{} 能防止sql 注入
${} 不能防止sql 注入
#{} 和 ${} 的实例:假设传入参数为 1
实例步骤一
#{}:select * from t_user where uid=#{uid}${}:select * from t_user where uid= '${uid}'
实例步骤二
#{}:select * from t_user where uid= ?${}:select * from t_user where uid= '1'
实例步骤三
#{}:select * from t_user where uid= '1'${}:select * from t_user where uid= '1'
#{} 和 ${} 的大括号中的值
单个参数的情形
#{}
${}
多个参数的情形 #{}
${}
#{} 和 ${} 在使用中的技巧和建议
1、不论是单个参数,还是多个参数,一律都建议使用注解@Param("")
2、 能用 #{} 的地方就用 #{},不用或少用${}
3、表名作参数时,必须用${}
。如:select * from ${tableName}
4、order by 时,必须用 ${}
。如:select * from t_user order by ${columnName}
5、表名处用#{}会直接报错;order by后面用#{}排序不生效
6、使用 ${} 时,要注意何时加或不加单引号,即${} 和 '${}'
。一般字段类型为char或者varchar时需要加单引号
感谢你能够认真阅读完这篇文章,希望小编分享的"MyBatis中的#{}和${}有什么区别"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
参数
变量
实例
引号
篇文章
动态
步骤
编译
单个
多个
建议
情形
是在
不用
价值
兴趣
前言
同时
名作
地方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
plsql中数据库恢复
fm中型数据库和大型数据库
物理服务器的管理制度
福建网络授时模块服务器
2017网络安全宣传策划
比亚迪嵌入式软件开发面试题
数据库无法删除
人才数据库未找到
网络技术对现代文明的贡献
网络安全 验证
五种网络技术并行计算
服务器变革
南通万千网络技术公司
5开服务器选择
培训教育系统软件开发
数据库原理及应用人民邮电
强化两会期间网络安全管理
哈尔滨工程大学网络技术学院
江西浪潮服务器维修调试虚拟主机
土地调查四级数据库
软件开发的电脑
网络技术支持岗位简介
上海威博网络技术有限公司
网络安全画报简单又漂亮一等奖
切换手机输入法软件开发
湘丰装备服务器
为什么网络技术加载不了
泰拉瑞亚服务器登陆教程
南京软件开发公司薪水
电力行业网络安全防护