发布于2023-02-04 17:53 阅读(347) 评论(0) 点赞(16) 收藏(1)
1.#{}是预编译处理,是占位符,${}是字符串替换,是拼接符。
2.Mybatis在处理#{}的时候会将sql中的#{}替换成?号,调用PreparedStatement来赋值
#{}将传入的数据当作一个字符串,会对传入的数据加上一个双引号。
比如,select * from student where student_name = #{studentName}
如果传入的值为xiaoming,那么解析成sql的值为student_name="xiaoming"。
3.Mybatis在处理${}的时候就是把${}替换成变量的值,调用Statement来赋值
${}将传入的数据直接显示生成在sql中;
如:select ${fieldNmae} from student where student_age = 18
传入的参数作为要查询的字段,如果传入的值为student_name,则解析成的sql为:
select student_name from student where age = 18
4. #{}方式能够很大程度上防止sql注入。
5.${}无法防止sql注入。
6.${}方式一般用于传入数据库对象,例如列表和表名。
7.由于#{}方式具有更高的安全行,所以能用#{}的地方尽量不要使用${}。
8.Mybatis排序时使用order by动态参数时需要注意,用${}而不是#{}。
原文链接:https://blog.csdn.net/weixin_50977434/article/details/127782942
作者:码神
链接:http://www.javaheidong.com/blog/article/641189/47732f658c5533a7cd30/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!