首页 > 作文

MyBatis中#{}和${}有哪些区别

更新时间:2023-04-04 01:15:50 阅读: 评论:0

目录
前言#{} 和 ${} 的区别#{} 和 ${} 的实例:假设传入参数为 1实例步骤一实例步骤二实例步骤三#{} 和 ${} 的大括号中的值#{} 和 ${}我的烦恼 在使用中的技巧和建议总结

前言

在mybatis 的映射配置文件中,动态传递参数有两种方式:

1、#{} 占位符

2、${} 拼接符

#{} 和 ${} 的区别

区别1

#{} 为参数占位符 ?,即sql 预编译

${} 为字符串替换,即 sql 拼接

区别2、

#{}:动态解析 -> 预编译 -> 执行

${}:动态解析吊兰 -> 编译 -> 执行

区别 3、

#{} 的变量替换是在dbms 中

${} 的变量替换是在 dbms 外

区别 4、

变量替换后,#{} 对应的变量自动加上单引号''

变量替换后,${} 对应的变量不会加上单引号 ''

区别 5、

#{} 能防止sql 注入

${} 不能防止sql 注入

#{} 和 ${} 的实例:假设传入参数为 1

实例步骤一

#{}:lect * from t_ur where uid=#{uid}${}:lect * from t_ur where uid= '${uid}'

实例步骤二

#{}:lect * from t_ur where uid= ?${}:lect * from t_ur where uid= '1'

实例步骤三

#{}:lect * from t_ur where uid= '1'${}:lect * from t_ur where uid= '1'

#{} 和 ${} 的大括号中的值

单个参数光彩夺目的反义词的情形

#{}

${}

多个参数男明星排行榜的情形 #{}

${}

#{} 和 ${} 在使用中的技巧和建议

1、不论是单个参数,还是多个参数,一律都建议使用注解@param("")

2、 能用 #{} 的地方就用 #{},不用或少用${}

3、表名作参数时,必须用${}。如:lect * from ${tablename}

4、order by 时,必须用 ${}。如:lect * from t_ur北宋发明活字印刷术的是谁 order by ${columnname}

5、表名处用#{}会直接报错;order by后面用#{}排序不生效

6、使用 ${} 时,要注意何时加或不加单引号,即${} 和 '${}'。一般字段类型为char或者varchar时需要加单引号

总结

到此这篇关于mybatis中#{}和${}有哪些区别的文章就介绍到这了,更多相关mybatis中#{}和${}区别内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 01:15:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/d6c3f6b246e7493b76e1075e3a8bbc87.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:MyBatis中#{}和${}有哪些区别.doc

本文 PDF 下载地址:MyBatis中#{}和${}有哪些区别.pdf

标签:区别   参数   实例   变量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图