MyBatis探究-----接口类映射XML文件中符号$和#的区别
Posted fengfuwanliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis探究-----接口类映射XML文件中符号$和#的区别相关的知识,希望对你有一定的参考价值。
1. $和#的区别
- #和$都可以获取map中的值或者pojo对象属性的值
- #:是以预编译的形式,将参数设置到sql语句中,防止sql注入
- $:取出的值直接拼装在sql语句中;会有安全问题
2. $和#的用法
2.1 表名、排序作为变量时,必须使用 $
select * from $year_salary where xxx;
select * from tbl_employee order by $f_name $order
2.2 能使用 # 的地方就用 #
接口映射文件中SQL语句:select * from t_employee where empId=$empId and empName=#empName
执行的预编译SQL语句:select * from t_employee where empId=2 and empName=?
以上是关于MyBatis探究-----接口类映射XML文件中符号$和#的区别的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis Spring整合配置映射接口类与映射xml文件