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文件

MyBatis Spring整合配置映射接口类与映射xml文件

mybatis之DAO层自动实现接口

Mybatis——动态代理的执行方式及规范

Mybatis——动态代理的执行方式及规范

Mybatis——动态代理的执行方式及规范