Param注解的作用
1.便于传递多个参数
(1)Mapper层
Integer updatePasswordByUid( //根据uid更新用户密码
@Param("uid") Integer uid,
@Param("password") String password,
@Param("modifiedUser") String modifiedUser,
@Param("modifiedTime") Date modifiedTime);
(2)对应的mapper.xml
<update id="updatePasswordByUid">
update t_user
set password=#{password},
modified_user=#{modifiedUser},
modified_time=#{modifiedTime}
where uid = #{uid}
</update>
注意:如果不使用@Param注解时,参数则只能有一个;如果还想引用多个参数,参数可以设置为JavaBean
public List<Role> findRoleByMix(@Param("roleP") RoleParam role, @Param("permissionP") PermissionParam permission);
<select id="findRoleByMix" resultType="role">
SELECT id,name FROM t_role
WHERE roleName=#{roleP.roleName}
AND note=#{rolep.note}
AND level=#{permissionP.level}
<select>
2.起别名的功能
(1)数据库中字段为:user_name、user_password;
(2)pojo类中字段为:name、password;
(3)传参时别名字段为:userName,userPassword
Integer updatePasswordByUsername(
@Param("password") String userPassword,
@Param("name") String userName);
<update id="updatePasswordByUsername">
update t_user
set user_password=#{password}
where user_name = #{userName}
</update>
补充:@Param和@RequestParam是什么关系呢?
①@Param是地处Dao层,是为了传递多个参数,解决的是可读性和直观性
②而@RequestParam是位列Controller层,作用是为获取前端参数,解决的是前后端参数不一致的问题