官方文档解析:
如果你的映射方法的形参有多个,这个注解使用在映射方法的参数上就能为它们取自定义名字。若不给出自定义名字,多参数(不包括 RowBounds 参数)则先以 “param” 作前缀,再加上它们的参数位置作为参数别名。例如 #{param1}, #{param2},这个是默认值。如果注解是 @Param(“person”),那么参数就会被命名为 #{person}。
在不使用@Param注解的时候,函数的参数只能为一个,并且在查询语句取值时只能用#{},且其所属的类必须为Javabean,
而使用@Param注解则可以使用多个参数,在查询语句中使用时可以使用#{}或者${}
例如这里的代码? ?@Param? ? ??
使用@Param后,接口中的参数顺序也可以打乱,只要id唯一即可当只有一个参数的时候可以不使用此注解@Mapperpublic interface LoginMapper extends BaseMapper<User> { @Select(“SELECT COUNT(1) FROM `user` WHERE name=#{username} AND PASSWORD=#{password} “) public int checkLogin(@Param(“username”) String username, @Param(“password”) String password);} vps云服务器
突然想到一个相似的注解:
@RequestParam
前端提交的form表单数据的name属性 和方法中的参数名不一致时 ,springMVC就无法自动封装参数,所以需要@RequestParam(前端name属性名称)来指定前端提交的表单的name属性的名称当前端的name属性和方法的参数名一致的时候,可以不使用此注解主要作用在Controller层