项目训练营第一天

项目训练营第一天

springboot后端环境搭建

1、首先需要找文章下载好tomcat、JDK、maven、mysql、IDEA。(软件下载及环境变量配置略)
2、在下载好的IDEA中,选择新建spring initial项目,选定java web,即可新建一个springboot项目
3、在新建好的pom.xml中,按照网上教程导入spring依赖,用于依赖注入。(这里不懂的需要去补下尚硅谷spring教程,简单看懂即可)

环境使用小技巧

在下载好的IDEA中settings中plugin模块下载MyBatisX插件可以右键建好的数据库表,一键生成对应的UserMapper.xml和UserMapper.java文件,对应我们设计的库表生成相应的实体类,分别放在一些文件夹中
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f5eed5a569d046e087bb024f在这里插入图片描述
第二步中的详细配置如上图所示,生成好后会有一个叫generator的文件夹出现在项目文件中。

下面是移动后的文件夹目录在这里插入图片描述

applications.yml配置

需要配置数据库,mybatis-plus等信息,这里为避免信息泄露就不展示了,网上有详细教程,可自行搜索。

tips

开发过程中会有需要自动生成serial UID的情况,需要在settings里进行修改。修改好后,点击相应的继承了serial类的实体类,按ALT+ENTER会出现黄色图标,点击会出现自动生成serial UID的选项。

注册逻辑编写

业务逻辑:

1、账户名不少于4位
2、密码名不少于8位
3、校验密码不少于8位
4、密码和校验密码必须相同
5、账户名不能重复
6、账户名中不能包含特殊字符
7、密码加密存储到数据库(加密脱敏处理,加盐值字符串)

代码如下:

public long userRegister(String userAccount, String password, String CheckPassword) {
        if (StringUtils.isAnyBlank(userAccount, password, CheckPassword)) {
            return -1;
        }
        if (userAccount.length() < 4) {
            return -1;
        }
        if (password.length() < 8 || CheckPassword.length() < 8) {
            return -1;
        }
        if (!password.equals(CheckPassword)) {
            return -1;
        }
        Pattern compile = Pattern.compile(".*[[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\\n|\\r|\\t].*");
        Matcher matcher = compile.matcher(userAccount);
        if (matcher.matches()) {
            return -1;
        }
        QueryWrapper<User> myQuery = new QueryWrapper<>();
        myQuery.eq("userAccount", userAccount);
        long count = this.count(myQuery);
        if (count > 0) {
            return -1;
        }
        String entryPassword = DigestUtils.md5Hex(SALT + password);
        User user = new User();
        user.setUserAccount(userAccount);
        user.setPassword(entryPassword);
        boolean saveResult = this.save(user);
        if (saveResult == false) {
            return -1;
        }
        return user.getId();
    }

QuaryWrapper是数据库myBatis-plus中实现查询的封装类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何设置MySQL远程访问权限?

MySQL是一种流行的关系型数据库管理系统&#xff0c;它广泛应用于各种Web应用程序和数据驱动的应用中。在默认情况下&#xff0c;MySQL只允许本地访问&#xff0c;为了能够从远程服务器或客户端访问MySQL数据库&#xff0c;我们需要进行一些额外的设置和配置。 安装和配置MySQ…

OSPF 2类LSA详解

概述 上图为2类LSA : Network LSA 的报文格式 , 我们重点关注3个报文字段即可 , 其他内容没有实际的信息 Link State ID : DR的接口IP地址 Network Mask : 该MA网络的掩码 Attached Router : 连接在该MA网络的所有路由器的Router ID 2类LSA一定是DR产生的 , 关于OSPF DR的细节…

LeetCode 671.二叉树第二小的结点

这个题我们可以用数组辅助完成&#xff0c;然后进行排序后&#xff0c;再用再进行取值&#xff0c;这是我的代码块: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/void Preorde…

从工具产品体验对比spark、hadoop、flink

作为一名大数据开发&#xff0c;从工具产品的角度&#xff0c;对比一下大数据工具最常使用的框架spark、hadoop和flink。工具无关好坏&#xff0c;但人的喜欢有偏好。 目录 评价标准1 效率2 用户体验分析从用户的维度来看从市场的维度来看从产品的维度来看 3 用户体验的基本原则…

关于edge浏览器注册Kaggle不显示验证部分的问题

使用edge注册kaggle没有显示验证的部分导致无法完成注册 法一 谷歌大法好&#xff0c;使用谷歌注册就么有问题&#xff0c;然鹅需要魔法上网。 法二 使用 edge的Header Editor的插件 收到邮件后填写即可 参考博客&#xff1a; Kaggle平台注册弹不出验证码怎么办&#…

STM32读写备份寄存器和实时时钟

文章目录 1. 硬件电路 2. RTC操作注意事项 操作步骤 3. 代码实现 3.1 读写备份寄存器 3.1.1 main.c 3.2 实时时钟 3.2.1 MyRTC.c 3.2.2 MyRTC.h 3.2.3 main.c 1. 硬件电路 对于BKP备份寄存器和RTC实时时钟的详细解析可以看下面这篇文章&#xff1a; STM32单片机BKP备…

读线圈和离散状态寄存器信息

一.功能码操作类型 二.读线圈状态 需求实例 读取设备地址为 3 的从设备的线圈状态寄存器&#xff0c;线圈地址为 19 到 55&#xff08;从 0 开始计算&#xff09;共 37 个状态。 分析&#xff1a;由需求可知读取地址&#xff0c;则功能码是0x01,地址为3即为0x03,线圈地址为19到…

目前哪个充电宝品牌比较好?四款优质充电宝分享

在电量成为现代生活不可或缺的生产资源的时代&#xff0c;选择一款优质的充电宝无疑是保证移动设备持续运作的关键。面对市场上众多品牌和型号的充电宝&#xff0c;消费者在选择时可能会感到困惑和迷茫。本文将为您揭示哪些品牌真正代表了耐用性和质量的典范&#xff0c;让自己…

字节大神强推千页PDF学习笔记,弱化学历问题,已拿意向书字节提前批移动端!

主要问java&#xff0c;以及虚拟机&#xff0c;问了一点android 1.实习项目有关的介绍以及问题回答 2.反射与代理的区别&#xff0c;动态代理&#xff0c;静态代理&#xff0c;二者的区别&#xff0c;以及代理模式的UML图 3.字节码技术 4.虚拟机的双亲委派&#xff0c;以及好…

【需求管理】软件需求开发和管理文档(原件Word)

1. 目的 2. 适用范围 3. 参考文件 4. 术语和缩写 5. 需求获取的方式 5.1. 与用户交谈向用户提问题 5.1.1. 访谈重点注意事项 5.1.2. 访谈指南 5.2. 参观用户的工作流程 5.3. 向用户群体发调查问卷 5.4. 已有软件系统调研 5.5. 资料收集 5.6. 原型系统调研 5.6.1. …

envi5.6+SARscape560安装(CSDN_20240623)

envi和SARscape的版本必须匹配&#xff0c;否则有些功能不能使用。 Envi5.6安装 1. 点击安装程序. 2. 进入安装界面&#xff0c;点击“Next”. 3. 选择“I accept the agreement”&#xff0c;点击“Next”。 4. 选择安装路径&#xff0c;建议直接安装在默认路径下&#xff0…

Nginx实战:简单登录验证配置(基于openssl)

本文提供的是基于openssl创建的密码文件,对nginx指定的location访问。进行登录验证的配置方式。 1、验证页面配置 我的nginx实验环境是直接yum安装的,如果是自己编译安装的那么对应目录就是自己安装配置的目录。 先在/usr/share/nginx/html下创建一个usertest.html,里面添加…

威纶通触摸屏以太网一机多屏设置

STEP 1 新增本机PLC&#xff0c;与PLC的通讯参数设置 STEP2 新增远端PLC&#xff0c;使用以太网方式&#xff0c;IP与主屏保持一致 PLC类型、接口类型与主屏上保持一致 分享创作不易&#xff0c;请多多支持&#xff0c;点赞、收藏、关注&#xff01; Ending~

四年Android,终于咸鱼翻身!8K到25K全靠这份高级面试题+解析!

1、哪些情况下的对象会被垃圾回收机制处理掉&#xff1f; 2、讲一下常见编码方式&#xff1f; 3、utf-8 编码中的中文占几个字节&#xff1b;int 型几个字节&#xff1f; 4、静态代理和动态代理的区别&#xff0c;什么场景使用&#xff1f; 5、Java 的异常体系 6、谈谈你对解析…

【网络安全学习】漏洞扫描:- 02- nmap漏洞扫描

1.nmap的介绍 Nmap是一款功能强大的网络探测和安全扫描工具&#xff0c;可以对目标进行端口扫描、服务探测、操作系统指纹识别等操作。 Nmap自带了许多内置的NSE脚本&#xff0c;它们可以根据不同的目标和场景来执行不同的功能。这些脚本存放在Nmap安装目录**/usr/share/nmap…

大学食堂管理系统

摘 要 随着信息技术的飞速发展和高校规模的不断扩大&#xff0c;大学食堂作为高校日常运营的重要组成部分&#xff0c;其管理效率和服务质量直接影响到师生的日常生活和学习。传统的食堂管理方式&#xff0c;如手工记录、纸质菜单、人工结算等&#xff0c;不仅效率低下&#x…

LED显示屏的换帧频率与刷新频率:技术细节与市场发展

在当今数字化时代&#xff0c;LED显示屏已成为信息传递和广告宣传的重要工具。然而&#xff0c;对于普通消费者来说&#xff0c;LED显示屏背后的技术细节可能仍然是一个谜。今天&#xff0c;我们将深入探讨LED显示屏中的两个关键概念&#xff1a;换帧频率和刷新频率&#xff0c…

【软件设计】详细设计说明书(word原件,项目直接套用)

软件详细设计说明书 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件全套资料&#xff1a;本文末个人名片直接获取或者进主页。

DEV-C++与EasyX图形库

&#x1f3ae;&#x1f50a;本文代码适合编译环境&#xff1a;DEV-C&#x1f4bb; ✨&#x1f9e8;温馨提示&#xff1a;此文乃作者心血&#xff0c;如要转载请标注版权&#xff0c;否则视为抄袭&#xff01;&#x1f389;&#x1f3a0; 今天就算是我们Easyx教程的第一篇博文…

如何解决代码中if…else-过多的问题,建议收藏

逻辑表达模式固定的 if…else 实现与示例 if (param.equals(value1)) { doAction1(someParams); } else if (param.equals(value2)) { doAction2(someParams); } else if (param.equals(value3)) { doAction3(someParams); } // … 可重构为 Map<?, Function<?>…