MyBatis获取参数值的两种方式 : ${} 和 #{}
${}的本质是字符串 ,#{}的本质是占位符赋值
${}使用字符串拼接的方式拼接sql ,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号。
#{}使用占位符赋值的方式拼接sql ,此时为字符串类型或日期类型的字段进行赋值时 ,可以自己添加单引号。
1.若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题 。
2.若mapper接口方法的参数为多个的字面量类型,此时MyBatis会将参数放在map集合中,以两种方式存储数据 :
a:以arg0,arg1...为键,以参数为值
b:以param1,param2...为键,以参数为值
因此,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题。
3.若mapper接口方法的参数为map集合类型的参数,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题
4.若mapper接口方法的参数为实体类类型的参数,只需要通过#{}和${}访问实体类中的属性名,就可以获取相对应的属性值.
5.可以在mapper接口方法的参数上设置@Param注解,此时