用户中心

完整了解做项目的思路,接触一些企业级的开发技术

(尽量少写代码)目标:大家之后都能轻松做出管理系统

本次直播内容:

  1. 上次直播问题总结✔
  2. 用户库表设计✔
  3. 完成登录注册的前后端开发
  4. 完成用户管理后台的前后端开发
  5. 其他(根据时间弹性安排)

企业做项目流程

需求分析 设计(概要设计、详细设计) 技术选型

初始化 / 引入需要的技术 写 Demo 写代码(实现业务逻辑) 测试(单元测试) 代码提交 / 代码评审 部署 发布

需求分析

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

技术选型

前端:三件套 + React + 组件库 Ant Design + Umi + Ant Design Pro(现成的管理系统)

后端:

  • java
  • spring(依赖注入框架,帮助你管理 Java 对象,集成一些其他的内容)
  • springmvc(web 框架,提供接口访问、restful接口等能力)
  • mybatis(Java 操作数据库的框架,持久层框架,对 jdbc 的封装)
  • mybatis-plus(对 mybatis 的增强,不用写 sql 也能实现增删改查)
  • springboot(快速启动 / 快速集成项目。不用自己管理 spring 配置,不用自己整合各种框架)
  • junit 单元测试库
  • mysql 数据库

部署:服务器 / 容器(平台)

计划

  1. 初始化项目

    1. 前端初始化 20 min

      1. 初始化项目 ✔
      2. 引入一些组件之类的 ✔
      3. 框架介绍 / 瘦身 ✔
    2. 后端初始化 20 min

      1. 准备环境(MySQL 之类的)验证 MySQL 是否安装成功 - 连接一下 ✔
      2. 初始化后端项目,引入框架(整合框架)✔
  2. 数据库设计

  3. 登录 / 注册 20min

    1. 后端 20min
      1. 规整项目目录 2 min
      2. 实现基本数据库操作(操作 user 表)
        1. 模型 user 对象 和数据库的字段关联,自动生成
      3. 写登录逻辑
    2. 前端 20min
  4. 用户管理(仅管理员可见) 20 min

    1. 前端
    2. 后端

笔记

三种初始化 Java 项目的方式

  1. GitHub 搜现成的代码
  2. SpringBoot 官方的模板生成器(https://start.spring.io/)
  3. 直接在 IDEA 开发工具中生成 ✔

如果要引入 java 的包,可以去 maven 中心仓库寻找(http://mvnrepository.com/)

数据库设计 30 min

什么是数据库?存数据的

数据库里有什么?数据表(理解为 excel 表格)

java 操作数据库,代替人工

什么是设计数据库表?

有哪些表(模型)?表中有哪些字段?字段的类型?数据库字段添加索引?

表与表之间的关联~

性别是否需要加索引?

用户表:

id(主键)bigint

username 昵称 varchar

userAccount 登录账号

avatarUrl 头像 varchar

gender 性别 tinyint

userPassword 密码 varchar

phone 电话 varchar

email 邮箱 varchar

userStatus 用户状态 int 0 - 正常


createTime 创建时间(数据插入时间)datetime

updateTime 更新时间(数据更新时间)datetime

isDelete 是否删除 0 1(逻辑删除)tinyint

自动生成器的使用

MyBatisX 插件,自动根据数据库生成 domain 实体对象、mapper(操作数据库的对象)、mapper.xml(定义了 mapper对象和数据库的关联,可以在里面自己写 SQL)、service(包含常用的增删改查)、serviceImpl(具体实现 service)

注册逻辑

  1. 用户在前端输入账户和密码、以及校验码(todo)
  2. 校验用户的账户、密码、校验密码,是否符合要求
    1. 非空
    2. 账户长度 不小于 4 位
    3. 密码就 不小于 8 位吧
    4. 账户不能重复
    5. 账户不包含特殊字符
    6. 密码和校验密码相同
  3. 对密码进行加密(密码千万不要直接以明文存储到数据库中)
  4. 向数据库插入用户数据