1.8 用户注册_和使用的工具类

news2024/11/17 20:35:05

步骤1:在common模块下,创建对应的工具类

/** 创建性别枚举(Sex)*/
/** md5加密类(MD5Utils)*/
/** 时间转换格式化类(DateUtil)*/
/** 生成全局唯一主机id (Sid)*/

在这里插入图片描述

步骤2:在pojo模块下,创建表单封装bo对象

/** 注册表单bo对象 UserBO*/

在这里插入图片描述

步骤3:在service模块下,UserService接口和实现类中添加创建用户方法

/** 创建用户接口*/
public Users createUser(UserBO userBO);

/** 创建用户实现*/
@Autowired
private Sid sid;
private static final String USER_FACE = "http://122.152.205.72:88/group1/M00/00/05/CpoxxFw_8_qAIlFXAAAcIhVPdSg994.png";

@Transactional(propagation = Propagation.REQUIRED)
@Override
public Users createUser(UserBO userBO) {
	String userId = sid.nextShort();
	Users user = new Users();
	user.setId(userId);
	user.setUsername(userBO.getUsername());
	try {
		user.setPassword(MD5Utils.getMD5Str(userBO.getPassword()));
	} catch (Exception e) {
		e.printStackTrace();
	}
	// 默认用户昵称同用户名
	user.setNickname(userBO.getUsername());
	// 默认头像
	user.setFace(USER_FACE);
	// 默认生日
	user.setBirthday(DateUtil.stringToDate("1900-01-01"));
	// 默认性别为 保密
	user.setSex(Sex.secret.type);
	user.setCreatedTime(new Date());
	user.setUpdatedTime(new Date());
	usersMapper.insert(user);
	return user;
}

步骤4:在api模块下,UserController创建注册接口

@PostMapping("/regist")
public JSONResult regist(@RequestBody UserBO userBO) {
	String username = userBO.getUsername();
	String password = userBO.getPassword();
	String confirmPwd = userBO.getConfirmPassword();
	// 0. 判断用户名和密码必须不为空
	if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(confirmPwd)) {
		return JSONResult.errorMsg("用户名或密码不能为空");
	}
	// 1. 查询用户名是否存在
	boolean isExist = userService.queryUsernameIsExist(username);
	if (isExist) {
		return JSONResult.errorMsg("用户名已经存在");
	}
	// 2. 密码长度不能少于6位
	if (password.length() < 6) {
		return JSONResult.errorMsg("密码长度不能少于6");
	}
	// 3. 判断两次密码是否一致
	if (!password.equals(confirmPwd)) {
		return JSONResult.errorMsg("两次密码输入不一致");
	}
	// 4. 实现注册
	userService.createUser(userBO);
	return JSONResult.ok();
}

步骤5:启动类添加扫描所有包以及相关组件包

@SpringBootApplication
// 扫描mybatis通用mapper所在的包
@MapperScan(basePackages="com.one.mapper")
// 扫描所有包以及相关组件包
@ComponentScan(basePackages = {"com.one", "org.n3r.idworker"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

在这里插入图片描述

源码地址:
http://www.gxcode.top/code
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么将桌面笔记软件中记录的内容折叠起来或展开显示?

记笔记是一种良好的习惯&#xff0c;不仅可以帮助我们整理思绪&#xff0c;还能有效地记录重要的信息。在现代科技的支持下&#xff0c;一款优秀的笔记软件已经成为我们记录和管理事项的主要工具。特别是一款能够折叠的桌面笔记软件&#xff0c;将会给用户带来更多的便利和效率…

2023.07.07 homework

孩子们有些基础不好&#xff0c;鼓励为主&#xff0c;教他们慢慢搬公式推算&#xff0c;提高准确率就好啦。每一次比上一次好一点点&#xff0c;慢慢找回自信心。 图形结合&#xff0c;话说话&#xff0c;其实数学这玩意&#xff0c;画得好也比较直观 第八题找规律的题目&#…

【如何成功加载 HuggingFace 数据集】不使用Colab,以ChnSentiCorp数据集为例

【如何成功加载 HuggingFace 数据集】不使用Colab&#xff0c;以ChnSentiCorp数据集为例 前置加载数据集尝试一&#xff1a;标准加载数据库代码尝试二&#xff1a;科学上网尝试三&#xff1a;把 Huggingface 的数据库下载到本地尝试3.5 创建 state.json彩蛋 前置 Huggingface …

DAY45——动态规划part7

爬楼梯问题 爬楼梯阶数为1...m class Solution {public int climbStairs(int n) {int[] dp new int[n 1];int m 2;dp[0] 1;for (int i 1; i < n; i) { // 遍历背包for (int j 1; j < m; j) { //遍历物品if (i > j) dp[i] dp[i - j];}}return dp[n];} } class…

基于matlab处理来自立体相机图像数据构建室外环境地图并估计相机的轨迹(附源码)

一、前言 视觉同步定位和映射 &#xff08;vSLAM&#xff09; 是指计算摄像机相对于周围环境的位置和方向&#xff0c;同时映射环境的过程。该过程仅使用来自相机的视觉输入。vSLAM 的应用包括增强现实、机器人和自动驾驶。vSLAM 只需使用单眼摄像头即可执行。但是&#xff0c…

Spring系列3 -- 更简单的读取和存储对象

前言 上一篇章总结了,Spring的创建与使用,通过创建Maven项目配置Spring的环境依赖,创建Spring框架的项目,然后通过在Resource目录下创建Spring-config.xml配置文件,添加<bean></bean>标签将我们需要的bean对象注入到容器中,然后通过ApplicationContext获取Spring上…

Mybatis-puls——条件查询的三种格式+条件查询null判定+查询投影

前言 在mybatis_plus的封装中的Wrapper<T>接口参数就是用于封装查询条件 在测试类中启动如上一个简单的查询&#xff0c;然后控制台运行会输出一大堆无关日志&#xff0c;这里先把这些日志关闭 去除无关日志文件 先新建一个XML配置文件 然后变成如下&#xff0c;这里…

[神经网络]YoloV7

Yolo系列是一类很经典的目标检测网络&#xff0c;属于anchor-base型网络&#xff0c;即需要先产生先验框然后筛选先验框得到预测框。同时它也是One-Stage网络&#xff0c;即不需要额外的网络结构来筛选先验框。这两种特点使得它具备了运算速度快和计算精度相对较高的特点。 比较…

Win10怎么用U盘重装系统?Win10用U盘重装系统步骤图解教程

Win10怎么用U盘重装系统&#xff1f;使用U盘重装系统是一种快速而有效的方法&#xff0c;可以帮助我们在电脑中进行Win10系统的重新安装。首先用户需要准备一个容量适当的U盘&#xff0c;并确保其中没有重要数据&#xff0c;然后按照小编分享的Win10用U盘重装系统步骤图解教程操…

Redis 简单入门

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 安装 Redisredis 的数据类型和使用字符串类型字典类型列表类型集合类型有序集合类型 SpringBoot 集成 Redis添加 redis 依赖配…

el-checkbox / el-checkbox-group中绑定对象无法回显的问题处理

在使用el-checkbox / el-checkbox-group时&#xff0c;发现若label绑定的是对象&#xff0c;则是无法回显的&#xff0c;参考了很多方法&#xff0c;但大多都无法解决&#xff0c;最终参考下面的方法解决&#xff0c;记录一下。 <el-checkbox :label"JSON.stringify(i…

每天一点Python——day51

#第五十一天列表和字典为可变序列&#xff0c;元组是不可变序列 为什么要将元组设计成不可变序列呢&#xff1f; 一旦创建了不可变类型的对象&#xff0c;对象内部的所有数据将不能被修改 这样就避免了由于修改数据而导致的错误 对于不可变对象&#xff0c;在多任务环境下&…

最小覆盖串双指针解题思路及Java实现

最小覆盖串双指针解题思路及Java实现 题目双指针思路Java实现 题目 题目来自牛客NC28 最小覆盖子串 给出两个字符串 s 和 t&#xff0c;要求在 s 中找出最短的包含 t 中所有字符的连续子串。 例如&#xff1a; 输入&#xff1a;“XDOYEZODEYXNZ”,“XYZ” 返回值&#xff1a;“…

使用LiteSpeed缓存插件将WordPress优化到100%的得分

页面速度优化应该是每个网站所有者的首要任务&#xff0c;因为它直接影响WordPress SEO。此外&#xff0c;网站加载的时间越长&#xff0c;其跳出率就越高。这可能会阻止您产生转化并为您的网站带来流量。 使用正确的工具和配置&#xff0c;缓存您的网站可以显着提高其性能。因…

c++——命名空间

1.什么是命名空间 1.1命名空间的定义 命名空间&#xff08;Namespace&#xff09;是C中用来避免命名冲突的一种机制。命名空间可以将一组相关的函数、类、变量等定义在同一个逻辑分组中&#xff0c;从而避免它们与其他代码中的同名实体发生冲突。 C中&#xff0c;命名空间使用…

Openlayers实战:回显点、线段、圆形、多边形

Openlayers地图中,回显数据到地图上,形成几何图形是非常重要的一部分学习内容。 回显的内容基本单元包括点、线、圆形、多边形。本实战项目中,根据给定的坐标点,用最基础最管用的方式来显示这些信息。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑…

Keil环境下CANopenNode移植到STM32问题记录(一)---printf重定向问题

文章目录 问题描述问题结决思考&#xff1a;相关文章 在直接将CANopenSTM32的示例工程直接移植到Keil环境下。 如果移植工程未实现printf函数重定向&#xff0c;则要注释掉log_printf下面的printf函数&#xff0c;使日志打印失效 /* Printf function of CanOpen app */ #define…

Django_环境配置(一)

目录 一、安装Django 二、创建项目 三、创建应用 四、注册应用 五、使用mysql数据库 六、视图 七、开发服务器 源码等资料获取方法 一、安装Django # 在CMD中运行 pip install django # 查看djangp版本 python manage.py version 二、创建项目 # 在CMD中运行 django-a…

工业物联网安全监测解决方案:工业安全节能管理

工业自动化和工业化的快速发展&#xff0c;工厂安全问题越来越受到重视。工厂安全监测是保障工厂安全运行的关键技术之一&#xff0c;它可以及时发现并处理潜在的安全问题&#xff0c;防止事故的发生&#xff0c;保障员工的安全和工厂的正常运转。智能改造成为广大企业关注的热…

idea配置本地maven保姆级教程

一、说在前面 idea默认会带有maven插件&#xff0c;原则上是可以不需要配置的。但有个缺点&#xff0c;他是把本地仓库直接安装在了系统盘里面&#xff0c;随着时间的推移&#xff0c;仓库越来越大&#xff0c;笔记本的压力会比较大。 本文是下载自己的maven包&#xff0c;集…