1. 用户-修改密码-持久层
1)分析SQL语句
修改密码时需要执行的SQL语句是:
UPDATE t_user
SET password=?, modified_user=?, modified_time=?
WHERE uid=?
以上SQL语句中,password的值应该是用户提交的新密码经过加密后的值,即:后续在操作时,需要先获取当前用户的盐值,才可以完成整个功能!包括在这个功能中,还应该先验证用户的原密码,则需要先获取用户的原密码的值!则需要查询功能:
SELECT password, salt, is_delete
FROM t_user
WHERE uid=?
2)接口与抽象方法
在`UserMapper`接口中添加2个抽象方法:
Integer updatePassword(
@Param("uid") Integer uid,
@Param("password") String password,
@Param("modifiedUser") String modifiedUser,
@Param("modifiedTime") Date modifiedTime);
User findByUid(Integer uid);
3)配置映射
在`UserMapper.xml`中配置以上2个抽象方法对应的映射:
<!-- 更新用户密码 -->
<!-- Integer updatePassword(
@Param("uid") Integer uid,
@Param("password") String password,
@Param("modifiedUser") String modifiedUser,
@Param("modifiedTime") Date modifiedTime) -->
<update id="updatePassword">
UPDATE t_user
SET
password=#{password},
modified_user=#{modifiedUser},
modified_time=#{modifiedTime}
WHERE uid=#{uid}
</update>
<!-- 根据用户id查询用户数据 -->
<!-- User findByUid(Integer uid) -->
<select id="findByUid" resultType="cn.tedu.store.entity.User">
SELECT password, salt, is_delete AS isDelete
FROM t_user WHERE uid=#{uid}
</select>
完成后,在`UserMapperTestCase`中编写并执行以上2个抽象