您的位置:首页 > 数据库

用MyBatis写sql语句时#{}与${}的区别

2020-07-08 14:59 148 查看

区别:
#{}:
(1)是以预编译的形式,将参数设置到sql语句中的;
(2)PreparedStatement;
(3)防止sql注入;

${}:
(1)取出的值直接拼装在sql语句中;
(2)Statement,会有安全问题;

两者使用场景比较:
大多数情况下,我们取参数的值应该去使用#{};
原生jdbc不支持占位符的地方我们就可以使用${}进行取值;
比如分表、排序等等,按照年份分表拆分:
select * from ${year}_salary where …;
select * from tbl_employee order by ${f_name} ${order};

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: