两种方式:${} 和 #{}
${} 的本质是字符串拼接{} 的本质是占位符填充
${} 使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号
但{} 会自动加
1.单个字面量类型的参数
若mapper接口中的方法参数为单个字面量时:两种都行,注意${} 要手动加单引号
2.多个字面量类型的参数
若mapper接口中的方法参数为多个字面量时:此时mybatis会自动将这些参数放在一个map集合中,以arg0,arg1为键,以参数为值;以param1,param2为键,以参数为值。因此两种方式就可通过访问map集合的键就可以获取对应的值,注意${}要手动加单引号
3.map集合类型的参数
若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在
map中
只需要通过${}和#{}访问map集合的键就可以获取相对应的值,注意${}需要手动加单引号
4.实体类类型的参数
若mapper接口中的方法参数为实体类对象时
此时可以使用${}和#{},通过访问实体类对象中的属性名获取属性值,注意${}需要手动加单引号
5.使用@Param标识参数
可以通过@Param注解标识mapper接口中的方法参数
此时,会将这些参数放在map集合中,以@Param注解的value属性值为键,以参数为值;以
param1,param2...为键,以参数为值;只需要通过${}和#{}访问map集合的键就可以获取相对应
的值,
注意${}需要手动加单引号。