今天用spring boot 简单写了一个密码修改需要调用的接口,
前端传回来的参数:原密码,新密码,用户名,
注意:我写servicel逻辑处理层,用的是加密方式,我注释掉了,实际运用中都是这种方式,不会让你看到真正的密码的,都是经过加密处理的,为了简单让你们看懂逻辑,我把加密方式注释掉,进行明文密码修改实现,你们可以进行实际操作下。(我的已经测试成功了,就看你们的了,明文和加密都可以哦~~希望对你们有帮助)
controller层
// 修改密码
@RequestMapping("/updatePassWord")
@ResponseBody
public Object updatePassWord(String password,String newpassword,String username,HttpSession session){
Map<String,Object> map=new HashMap<>();
int i= (int) userService.modifyPassword( password, newpassword, username, session);
if(i==1){
map.put("code",1);
map.put("msg","修改成功!");
}else {
map.put("code",0);
map.put("msg","修改失败");
}
return map;
}
service层
// 修改密码
@Override
public Object modifyPassword(String password, String newpassword, String username, HttpSession session){
Map<String,Object> map=new HashMap<String, Object>();
if(password!=null){
// 前端传过来的密码进行加密处理,如果你的数据用的是md5加密的话,需要进行一下加密,因为你前端传过来的是明文,数据库密码是经过加密的然后进行查询,
// String passwords=MD5Encode.encode(password);
// User user=userMapper.selectBypassword(passwords,username);
User user=userMapper.selectBypassword(password,username);
//获得用户的id
Integer id=user.getId();
// 数据库密码
String yspassword=user.getPassword();
// String pwd=password;
// if(yspassword.equals(passwords)){
if(yspassword.equals(password)){
User u=new User();
u.setId(id);
// 对新密码进行加密
// u.setPassword(MD5Encode.encode(newpassword));
u.setPassword(newpassword);
// 修改数据库的旧密码
return userMapper.updateByPrimaryKeySelective(u);
// map;
}
}
return 0;
}
service接口层
public interface UserService {
Object modifyPassword(String password, String newpassword, String username, HttpSession session);
}
dao(mapper)层
//获取用户所有信息
User selectBypassword(@Param("passwords") String passwords,@Param("username") String username);
// 修改密码
int updateByPrimaryKeySelective(User record);
xml(我用的是xml形式,你也可以直接注解,把sql语句贴出来吧)
<select id="selectBypassword" resultMap="BaseResultMap" parameterType="java.lang.String" >
SELECT
*
FROM
USER
WHERE
password = #{passwords}
AND username = #{username}
</select>
<update id="updateByPrimaryKeySelective" parameterType="com.leienchuanmei.leien_management.entity.User" >
update user
<set >
<if test="username != null" >
username = #{username,jdbcType=VARCHAR},
</if>
<if test="password != null" >
password = #{password,jdbcType=VARCHAR},
</if>
<if test="phone != null" >
phone = #{phone,jdbcType=VARCHAR},
</if>
<if test="name != null" >
name = #{name,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
ps 写好直接用postman进行测试
最后给你们写一个简单的加密方法,需要的时候直接用就好了
准备工作
pom.xml引入依赖
<!--MD5加密-->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
common(工具层)—需要用的的时候直接调用就好了,上面有调用的,不会的可以看看
import org.apache.commons.codec.digest.DigestUtils;
/**
* @Auther: LL
* @Date: 2019/3/18 14:54
*/
public class MD5Encode {
//有个地方不是英语哦~~~
private static final String PASSWORD="jiamishujudeqianzhui";
public static String encode(String password){
String str=PASSWORD+password;
String encode= DigestUtils.md5Hex(str);
return encode;
}
}