码迷,mamicode.com
首页 > 其他好文 > 详细

#{}, ${}取值区别

时间:2018-03-11 19:29:36      阅读:2389      评论:0      收藏:0      [点我收藏+]

标签:com   gpo   prepare   设置   应该   info   dstat   and   from   

#{}:可以获取map中的值或者pojo对象属性的值;
${}:可以获取map中的值或者pojo对象属性的值;


select * from tbl_employee where id=${id} and last_name=#{lastName}
Preparing: select * from tbl_employee where id=2 and last_name=?
区别:
#{}:是以预编译的形式,将参数设置到sql语句中;PreparedStatement;防止sql注入
${}:取出的值直接拼装在sql语句中;会有安全问题;

技术分享图片

大多情况下,我们去参数的值都应该去使用#{};

原生jdbc不支持占位符的地方我们就可以使用${}进行取值
比如分表、排序。。。;按照年份分表拆分
select * from ${year}_salary where xxx;
select * from tbl_employee order by ${f_name} ${order}

#{}, ${}取值区别

标签:com   gpo   prepare   设置   应该   info   dstat   and   from   

原文地址:https://www.cnblogs.com/zhangzhiqin/p/8544813.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!