用户中心(上)

文章目录

    • 企业做项目流程
    • 需求分析
    • 技术选型
    • 计划
      • 初始化项目
      • 数据库设计
      • 登录/注册
      • ⽤户管理(仅管理员可⻅)
    • 初始化项目
      • ⼀、前端初始化
        • 1.下载nodejs
        • 2.Ant Design Pro
        • 相关问题
          • 1.前端项目启动时报错、无法启动?
          • 2.如何初始化前端项目?为什么初始化命令和鱼皮视频中的不同?为什么没有umi@3选项?
      • 二、后端初始化
        • 数据库
        • 方法一(不推荐)
        • 方法二
        • 方法三(推荐)
          • 流程

企业做项目流程

需求分析=>设计(概要设计,详细设计)=>技术选型 =>初始化/引入需要的技术=>
写demo=>写代码(实现业务逻辑)=>测试(单元测试)=>代码提交/代码评审=>部署=> 发布

需求分析

**1.登录/注册 **
**2.用户管理(仅管理员可见)对用户的的查询或修改 **
**3.用户校验(仅星球用户) **

技术选型

前端:三件套+React+组件库Ant Design+Umi+Ant Design Pro(现成的管理系统)
后端:
java
spring(依赖注入框架,帮助你管理Java对象,集成一些其他的内容)
springmvc(web框架,提供接口访问、restfu接口等能力)
mybatis(Java操作数据库的框架,持久层框架,对jdbc的封装)
mybatis-.plus(对mybatis的增强,不用写sql也能实现增删改查)
springboot(快速启动/快速集成项目。不用自己管理spring配置,不用自己整合各种框架)
junit 单元测试库
mysql
部署:服务器/容器(平台)

计划

初始化项目

1.前端初始化 ✔️

  1. 前端初始化

  2. 引入一些组件之类的

  3. 框架介绍/瘦身

2.后端初始化 ✔️

  1. 准备环境(MySql之类的)

  2. 引入框架

数据库设计

登录/注册

  1. 前端
  2. 后端

⽤户管理(仅管理员可⻅)

  1. 前端
  2. 后端

初始化项目

本项目Node.js请使用v16版本,JDK请使用8版本,Spring Boot使用2.x版本!

⼀、前端初始化

1.下载nodejs
2.Ant Design Pro
相关问题
1.前端项目启动时报错、无法启动?

大概率是本地环境、依赖版本和鱼皮的不一致,或者是文件权限问题,Node,js版本最好使用v16(鱼皮的是v16.20.0),如果不是的话建议去Node.js官方网站重新下载安装Node,或者使用nvm(Node.js版本管理工具)来切换多个不同的Node.js版本。

2.如何初始化前端项目?为什么初始化命令和鱼皮视频中的不同?为什么没有umi@3选项?

因为本项目使用的前端框架Ant Design Pro在持续更新,请以官方文档最新的初始化命令为主。
官方文档:https::/pro.ant.design/zh-CN/docs/getting-started
知道去看官方文档,你就能少走很多坑。
如果跟着视频做报错了,那么先去看最新官方文档上的命令和用法,或者切换文档版本为和视频一致。如果还有报错,那么就把错误信息贴到百度去查询。

如果你还想用umi@3和umi ui怎么办呢?

更新后的框架不能满足需求,那我们用更新前的不就好了???

执行命令安装老版本的脚手架:

npm i @ant-design/pro-cli@3.1.0 -g

然后使用pro-v查看版本号,保证是3.1.0,即可出现umi@3的选项:
image.png

选择框架版本时,一定要选V3!!!使用v4版本不支持umi ui悬浮按钮。
image.png

注意:像截图这里没有让你选择 umi3 还是 umi4 的,因为官方默认最新版本,就先按 ctrl+c 回退。
先卸载上面的版本npm uninstall -g @ant-design/pro-cli
选择这个方式安装指定版本npm install -g @ant-design/pro-cli@3.1.0
这样接着pro create myapp就可以选择版本了,我们选 umi3

升降级nodejs的博客

有可能nodejs和你的版本不匹配,可能nodejs版本过高,要么降低版本,要么把 start 这一行改成这样"start": "set NODE_OPTIONS=--openssl-legacy-provider && cross-env UMI_ENV=dev umi dev",

然后是 umi ui 的下载
yarn add @umijs/preset-ui -D

二、后端初始化

数据库

MySQL 5.7

方法一(不推荐)

去 GitHub 上面搜索 SpringBoot 模板,但从0开始做或者企业化做就最好不要

方法二

Spring官网的模板生成器

因为现在官网不支持java8,通过阿里云国服去间接创建Spring项目修改Server URL为https://start.aliyun.com

image.png
阿里云Spring模板生成器

方法三(推荐)

直接在 IDEA开发工具里生成
如果要引入java的包,可以去maven中心仓库寻找(http:/mvnrepository…com/)
直接在 IDEA开发工具里生成

流程
  1. 创建项目
  2. 点击右侧的 database 登录连接数据库
  3. 编写demo

MyBatis-Plus官方文档

DROP TABLE IF EXISTS `user`;CREATE TABLE `user`
(id    BIGINT      NOT NULL COMMENT '主键ID',name  VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age   INT         NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);DELETE FROM `user`;INSERT INTO `user` (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');

执行demo
image.png

  1. 引入依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency>
  1. 配置文件 application.yml

原来是 application.properties,改为了 .yml

spring:application:name: user-centerdatasource:url: jdbc:mysql://localhost:3306/aniausername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver
server:port: 8080

这里要配置不然启动项目会因为 MyBatis 没配置而出错

  1. 创建 mapper 包

@SpringBootApplication
@MapperScan("com.hsu.usercenter.mapper")
public class UserCenterApplication {public static void main(String[] args) {SpringApplication.run(UserCenterApplication.class, args);}}

在类上添加 @MapperScan("com.hsu.usercenter.mapper")

  1. 创建 model 包

复制 User 到 model 包

@Data
@TableName("`user`")
public class User {private Long id;private String name;private Integer age;private String email;
}

复制 UserMapper 到 mapper 包

public interface UserMapper extends BaseMapper<User> {}

这里 BaseMapper 官方已经提供了很多方法了

  1. 编写测试类

@SpringBootTest
public class SampleTest {@Autowiredprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<User> userList = userMapper.selectList(null);Assert.isTrue(5 == userList.size(), "");userList.forEach(System.out::println);}}

记得导入对应的包
引入 Java 的包去 Maven 中心仓库
运行测试即可

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

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

相关文章

分享一个网站实现永久免费HTTPS访问的方法

免费SSL证书作为一种基础的网络安全工具&#xff0c;以其零成本的优势吸引了不少网站管理员的青睐。要实现免费HTTPS访问&#xff0c;您可以按照以下步骤操作&#xff1a; 一、 选择免费SSL证书提供商 选择一个提供免费SSL证书的服务商。如JoySSL&#xff0c;他们是国内为数不…

【云原生】Docker 实践(一):在 Docker 中部署第一个应用

Docker 实践&#xff08;一&#xff09;&#xff1a;在 Docker 中部署第一个应用 1.使用 YUM 方式安装 Docker2.验证 Docker 环境3.在 Docker 中部署第一个应用3.1 小插曲&#xff1a;docker pull 报 missing signature key 错误3.2 重新安装 Nginx 1.使用 YUM 方式安装 Docker…

【酱浦菌-爬虫技术细节】解决学术堂爬虫翻页(下一页)问题

首先我们通过css选择器获取页码信息&#xff0c;这里的css选择器&#xff0c;选择的是含有a标签的所有li标签&#xff0c;代码如下&#xff1a; li html_web.css(div.pd_c_xslb_left_fenye ul li>a) for li in li:li_url li.css(a::attr(href)).get()li_num li.css(a::t…

软件测试经理工作日常随记【1】-测试用例

软件测试经理工作日常随记【1】-测试用例 1.测试用例 测试用例&#xff0c;好像是每个讲软测经验的文章的基本输出。各种测试用例的设计及白盒黑盒测试方法重复出现在收集者前面。so&#xff0c;不走寻常路的我&#xff0c;觉得从另外的角度去分享测试用例。日常工作中&#…

深圳厂房高温工厂降温方案

深圳的高温工厂降温方案可以根据具体需求和环境条件进行选择。以下是一些常见的降温方案&#xff1a; 工业冷风机&#xff1a;工业冷风机是一种经济、环保的降温设备&#xff0c;通过水蒸发吸热的原理来降低室内温度。它适用于大型开放空间或通风良好的区域&#xff0c;能够有…

【C++庖丁解牛】C++11---新的类的功能 | 可变参数模板

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1.新的类功能1.1 默认成员…

合泰杯(HT32F52352)RTC的应用(计时)--->掉电不丢失VBAT(代码已经实现附带源码)

摘要 在HT32F52352合泰单片机开发中&#xff0c;rtc在网上还是挺少人应用的&#xff0c;找了很久没什么资料&#xff0c;现在我根据手册和官方的代码进行配置理解。 RTC在嵌入式单片机中是一个很重要的应用资源。 记录事件时间戳&#xff1a;RTC可以记录事件发生的精确时间&…

什么是域名解析?域名解析的完整流程是什么?如何清理DNS缓存?(附源码)

目录 1、什么是域名&#xff1f; 2、为什么使用域名&#xff1f; 3、域名解析的完整流程 4、调用gethostbyname系统接口将域名解析成IP地址 5、为什么需要清理系统DNS缓存&#xff1f; 6、使用cmd命令清理DNS缓存 7、通过代码去清除系统DNS缓存 C软件异常排查从入门到精…

【入坑存内计算一键指南】存内计算运算原理:算法优化、存储介质探究

一.存内计算 存内计算是一种计算方式&#xff0c;它将计算单元嵌入到内存当中。在传统的计算机运行体系中&#xff0c;如冯诺依曼体系&#xff0c;计算机通常包括存储单元和计算单元两部分。计算机进行运算时&#xff0c;需要先将数据存入主存储器&#xff0c;然后按照顺序从…

Vue3框架

Vue3框架 一.使用create-vue搭建Vue3项目二.组合式API - setup选项1.setup选项的写法和执行时机2.setup中写代码的特点3. script setup 语法糖 三.组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 四.组合式API - computed五.组合式API - watch1. 侦听单个…

数据结构——时间复杂度与空间复杂度

文章目录 一、算法效率算法的复杂度 二、时间复杂度1.时间复杂度的概念2.大O的渐进表示法3.例子 三、空间复杂度1.空间复杂度概念2.例子 四、常见复杂度对比 一、算法效率 算法的复杂度 算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间(内存)资源 。 因此…

交叉调制少样本图像生成用于结直肠组织分类

文章目录 Cross-Modulated Few-Shot Image Generation for Colorectal Tissue Classification摘要方法实验结果 Cross-Modulated Few-Shot Image Generation for Colorectal Tissue Classification 摘要 提出问题&#xff1a; 针对罕见癌症组织的组织病理训练数据稀缺问题&…