用户管理中心——数据库设计用户注册逻辑设计

用户管理中心——数据库设计&用户注册逻辑设计

  • 规整项目目录
  • 1. 数据库自动生成器的使用
    • 实现基本的数据库操作(操作user表)
  • 2. 注册逻辑的设计
    • (1) 写注册逻辑
    • (2) 实现
    • (3) 测试代码
  • 3. 遇到的问题

规整项目目录

在这里插入图片描述
utils–存放工具类,比如加密转换等

1. 数据库自动生成器的使用

在这里插入图片描述

实现基本的数据库操作(操作user表)

模型 user 对象 => 和数据库关联,自动生成

【操作user表中的数据,从中查询数据,(在model中)先创建一个user对象,和数据库字段关联】

使用mybatis-plus自动生成
使用插件MyBatisX ,自动根据数据库生成:
在这里插入图片描述

在这里插入图片描述

代码迁移,创建测试类

在这里插入图片描述
在这里插入图片描述
安装一个插件
在这里插入图片描述

在创建的对象上按Alt + Enter,可以生成调用这个对象所有的set方法。

在这里插入图片描述
ctrl+P :可以查看这个方法要用哪些参数

最后的测试类:
在这里插入图片描述

2. 注册逻辑的设计

(1) 写注册逻辑

在这里插入图片描述

(2) 实现

 @Overridepublic long userRegister(String userAccount, String userPassword, String checkPassword) {// 1. 校验// if(userAccount == null || userPassword == null || checkPassword == null)if(StringUtils.isAnyBlank(userAccount, userPassword, checkPassword)){return -1;}if(userAccount.length() < 4){return -1;}if(userPassword.length() < 8 || checkPassword.length() < 8){return -1;}// 账户不能包含特殊字符String validPattern = "\\pP|\\pS|\\s+";Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);if(matcher.find()){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 = "yupi";String newPassword = DigestUtils.md5DigestAsHex((SALT + "mypassword").getBytes());// 3. 插入数据User user = new User();user.setUserAccount(userAccount);user.setUserPassword(userPassword);boolean saveResult = this.save(user);if(!saveResult){return -1;}return user.getId();}

(3) 测试代码

@Testvoid userRegister() {// 非空String userAccount = "hhhhh";String userPassword = "";String checkPassword = "12345678";long result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertEquals(-1, result);// 账号长度不小于4位userAccount = "yu";result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertEquals(-1, result);// 密码不小于8位userAccount = "hhhhh";userPassword = "123456";result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertEquals(-1, result);// 账户不能重复userAccount = "yupi";userPassword = "12345678";result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertEquals(-1, result);// 账户不包含特殊字符userAccount = "yu pi";userPassword = "12345678";result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertEquals(-1, result);// 密码和校验密码不同userAccount = "hhhhh";userPassword = "12345678";checkPassword = "123456789";result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertEquals(-1, result);checkPassword = "12345678";result = userService.userRegister(userAccount, userPassword, checkPassword);Assertions.assertTrue(result > 0);}

3. 遇到的问题

  1. 问题:Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘user_account’ in ‘field list’
    ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column ‘user_account’ in ‘field list’

在这里插入图片描述

原因:查找mybatis-plus官网配置文件,发现自动将下划线映射为驼峰

在这里插入图片描述
解决: 修改配置文件
在这里插入图片描述

  1. 如何解决idea插件安装过慢?
    两步带你解决IDEA 插件下载安装慢、超时、不成功问题
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/674484.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Parts2Whole革新:多参照图定制人像,创新自定义肖像生成框架!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; Parts2Whole革新&#xff1a;多参照图定制人像&#xff0c;创新自定义肖像生成框架&#xff01; 引言&#xff1a;探索多条件人像生成的新篇章 在数字内容创作…

【计算机科学速成课】笔记三

文章目录 17.集成电路真空管时代晶体管时代集成电路时代印刷电路板时代光刻时代 17.集成电路 Over the past six episodes, we delved into software, 过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程 from early programming efforts to modern software engineerin…

PMBOK第七版,通往项目管理的新地图|分析2024软考光环PMP第六版培训课程

目录 文明福利 历次升级分析 2PMBOK第七版解读 1、和第六版保持一致&#xff1a;由知识体系指南和项目管理标准2部分构成。 2、区别于第六版的结构性颠覆&#xff1a;12原则、8大绩效域取代5大过程组、10大知识领域。 3PMBOK第七版VS第六版 4PMBOK第七版 就是带领我们寻找…

独有病眼花,春风吹不落。 (二维坐标压缩成一个点,并查集)

本题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目&#xff1a; 样例&#xff1a; 输入 3 8 1 1 D 1 1 R 1 2 D 2 1 D 2 2 R 3 1 R 3 2 R 2 3 D 输出 8 思路&#xff1a; 根据题意&#xff0c;要求连接线段后&#xff0c;操作多少次&#xff0c;连接的线段闭合&…

SAP PP学习笔记12 - 评估MRP的运行结果

上一章讲了MRP的概念&#xff0c;参数&#xff0c;配置等内容。 SAP PP学习笔记11 - PP中的MRP相关概念&#xff0c;参数&#xff0c;配置-CSDN博客 本章来讲 MRP跑完之后呢&#xff0c;要怎么评估这个MRP的运行结果。 1&#xff0c;Stock/Requirements List and MRP List 在…

LeetCode算法题:8.字符串转换整数 (atoi)

请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 读入字符串并丢弃无用的前导空格检查下一个字符&#xff08;假设还未到字符末…

ASP.NET网上鲜花销售系统的设计

摘 要 本系统实现了一般电子商务所具备的功能&#xff0c;如商品浏览、用户登录注册、网上与购物、结算、后台数据库管理等&#xff0c;利用这些功能可以对鲜花销售信息进行较好的管理。 网上鲜花销售系统的使用者主要是客户和销售管理者&#xff0c;对于客户来说&#xff0…

传统汽车空调系统工作原理

1.首先讲一个概念 液体变成气体&#xff1a;吸热 气体变成液体&#xff1a;放热 2.在汽车空调系统中热量的传递的介质不是水&#xff0c;而是氟利昂&#xff0c;简称&#xff1a;“氟”。 3.传统式汽车空调结构如下 该三个部件位于车头进气口位置 该部位位于汽车驾驶车厢前方…

上海个人购房提取公积金经历和注意事项(收藏不踩坑)

在前一篇文章中&#xff0c;我介绍了 2024 年 4 月 24 日上海个人购房个税退税经历&#xff0c;我于 4 月 27 日周六&#xff0c;顺利办理租房公积金提取业务&#xff0c;资金在业务办理完成后 10 分钟左右到账。通过本文分享办理过程的材料和注意事项&#xff0c;避免大家踩坑…

PTQ4SAM、Mamba-Attention、AniTalker、IceFormer、U-DiTs、CogDPM

本文首发于公众号&#xff1a;机器感知 PTQ4SAM、Mamba-Attention、AniTalker、IceFormer、U-DiTs、CogDPM PTQ4SAM: Post-Training Quantization for Segment Anything Segment Anything Model (SAM) has achieved impressive performance in many computer vision tasks. Ho…

uni-app+vue3 +uni.connectSocket 使用websocket

前言 最近在uni-appvue3websocket实现聊天功能&#xff0c;在使用websocket还是遇到很多问题 这次因为是app手机应用&#xff0c;就没有使用websocket对象&#xff0c;使用的是uni-app的uni.connectSocket 为了方便测试这次用的是node.js一个简单的dom&#xff0c;来联调模拟…

基于Springboot的校园新闻管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园新闻管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…