springboot项目账户注册逻辑功能实现

 更新时间:2024年12月23日 09:47:21   作者:肆仟  
这篇文章主要介绍了springboot项目账户注册逻辑功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

记录一下实现注册逻辑功能,方便以后回顾。

逻辑如下:

    /**
     * 用户注册
     * @param userAccount
     * @param userPassword
     * @param checkPassword
     * @return
     */
    @Override
    public long userRegister(String userAccount, String userPassword, String checkPassword) {
        // 1. 验证
        // 非空校验
        if (StringUtils.isAnyEmpty(userAccount, userPassword, checkPassword)){
            return -1;
        }
        // 账户、密码长度校验
        if (userAccount.length() < 4 || userPassword.length() < 8){
            return -1;
        }
        // 账户不能包含特殊字符校验
        if (userAccount.matches(".*[^a-zA-Z0-9].*")){
            return -1;
        }
        // 密码与验证密码是否相同
        if (!userPassword.equals(checkPassword)){
            return -1;
        }
        // 验证账户是否重复。
        // 这里放到最后校验的作用:当账户包含特殊字符时,无需对进行一次数据库查找操作,减少资源浪费
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("userAccount", userAccount);
        long count = userMapper.selectCount(queryWrapper);
        if (count > 0){
            return -1;
        }
        // 2. 加密
        // 加盐
        final String SALT = "lyj";
        String newPassword = DigestUtils.md5DigestAsHex((SALT + userPassword).getBytes(StandardCharsets.UTF_8));
        // 3. 插入数据库
        User user = new User();
        user.setUserAccount(userAccount);
        user.setAvatarUrl("");
        user.setGender(0);
        user.setUserPassword(newPassword);
        user.setUserStatus(0);
        user.setIsDelete(0);
        int saveResult = userMapper.insert(user);
        if (saveResult != 1){
            return -1;
        }
        return user.getId();
    }

tips:这里在校验时,可以将校验账户是否重复注册放在校验的最后一步,当账户包含特殊字符时,无需对进行一次数据库查找操作,减少资源浪费。

到此这篇关于springboot项目账户注册逻辑功能实现的文章就介绍到这了,更多相关springboot账户注册逻辑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java读取excel文件并复制(copy)文件到指定目录示例

    java读取excel文件并复制(copy)文件到指定目录示例

    这篇文章主要介绍了java读取excel文件并复制文件到指定目录示例,需要的朋友可以参考下
    2014-02-02
  • Spring之@Aspect中通知的5种方式详解

    Spring之@Aspect中通知的5种方式详解

    本文主要介绍了Spring之@Aspect中通知的5种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • servlet的url-pattern匹配规则详细描述(小结)

    servlet的url-pattern匹配规则详细描述(小结)

    在利用servlet或Filter进行url请求的匹配时,很关键的一点就是匹配规则。这篇文章主要介绍了servlet的url-pattern匹配规则详细描述(小结),非常具有实用价值,需要的朋友可以参考下
    2018-07-07
  • Java读取resources目录下文件路径的九种代码示例教程

    Java读取resources目录下文件路径的九种代码示例教程

    在Java开发中经常需要读取项目中resources目录下的文件或获取资源路径,这篇文章主要给大家介绍了关于Java读取resources目录下文件路径的九种代码示例教程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • SpringBoot中发送QQ邮件功能的实现代码

    SpringBoot中发送QQ邮件功能的实现代码

    这篇文章主要介绍了SpringBoot中发送QQ邮件功能的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • springboot结合mybatis-plus基于session模拟短信注册功能

    springboot结合mybatis-plus基于session模拟短信注册功能

    本文主要介绍了springboot结合mybatis-plus基于session模拟短信注册功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Java中的复合数据类型

    Java中的复合数据类型

    这篇文章主要介绍了Java中的复合数据类型,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 关于Unsupported Media Type的解决方案

    关于Unsupported Media Type的解决方案

    在Web开发中,415错误表示服务器无法处理请求附带的媒体格式,本文介绍了导致HTTP 415错误的原因以及解决该问题的两种方法,首先,415错误通常是由于客户端请求的内容类型与服务器期望的不匹配引起的,例如,服务器可能期望JSON格式的数据
    2024-10-10
  • SpringCloud Zuul基本使用方法汇总

    SpringCloud Zuul基本使用方法汇总

    这篇文章主要介绍了SpringCloud Zuul基本使用方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Java实现布隆过滤器的方法步骤

    Java实现布隆过滤器的方法步骤

    布隆过滤器是可以用于判断一个元素是不是在一个集合里,并且相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。下面这篇文章主要给大家介绍了关于Java实现布隆过滤器的相关资料,需要的朋友可以参考下
    2018-11-11

最新评论