spring boot 简单实现用户数据库密码的修改(后台全部步骤,链接数据库建一个用户表就可以测试)

本文介绍了使用Spring Boot编写密码修改接口的过程,前端传递原密码、新密码和用户名等参数。在service逻辑处理层,原本采用加密方式,为便于理解逻辑,注释掉加密进行明文密码修改。还提及了controller、service、dao等各层,可用Postman测试,最后给出简单加密方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用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;
    }

}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值