@Param注解的作用
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层,作用是为获取前端参数,解决的是前后端参数不一致的问题