-
-
-
#{}与${}的区别
-
-
#{}:可以获取map中的值或者pojo对象属性的值
${}: 可以获取map中的值获取pojo对象属性的值
#{}:是采用占位符的方式[?],是以预编译的形式,将参数设置到sql语句中,
PreparedStatement;防止sql注入
${}:取出的值直接拼装在sql语句中,会有安全问题,相当于Statement对象;
大多情况下,我们取参数的值都应该去使用#{};
原生JDBC不支持占位符的地方我们就可以使用${}进行取值,#{}只是取出参数中的值!
在某些情况下,比如分表、排序;按照年份分表拆分
select * from ${year}_salary where xxx;[表名不支持预编译]
select * from tbl_employee order by ${f_name} ${order} :排序是不支持预编译的!