MyBatis Usage

符号使用

# 和 $ 的区别

  • 使用 #{parameterName} 引用参数的时候,Mybatis 会把这个参数认为是一个字符串,例如 sql 传入参数 “Smith”,Select from emp where name = #{employeeName};
  • 使用 ${parameterName} 引用参数的时候,上述例子中的 sql 语句变为 Select from emp where name = Smith;

简单来说,#{} 是经过预编译的是安全的,而 ${} 是未经过预编译的,仅仅是取变量的值是非安全的,存在 sql 注入的危险。# 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。


ResultMap


Reference