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文件中符号$和#的区别的主要内容,如果未能解决你的问题,请参考以下文章