引言
CMS代表内容管理系统,它是用于创建、编辑和管理数字内容的工具。CMS管理系统可以帮助你轻松地管理和更新网站、博客、电子商务平台或其他在线平台上的内容。😊
一篇文章帮你彻底解决cms管理系统后台 文章篇幅较长,将设置成专栏,建议收藏哦
流程
cms在企业中是一个非常常见并最为简单的项目,那么我们在企业中该如何对项目下手呢?
1. 需求分析
2. 设计(概要设计,详细设计)
3. 技术选型
4. 初始化/引入需要的技术
5. 写Demo
6. 写代码(实现业务逻辑)
7. 测试(单元测试,系统测试)
8. 代码提交./代码评审
9. 部署
10. 发布上线
1. 需求分析
cms管理系统是一种非常常见的项目,基本实现过程简单,大致主要为登录注册,用户管理以及用户校验
在很多开发框架中,有一种常见的架构模式被广泛采用,即 MVC(Model-View-Controller) 模式。在这种模式中,软件系统被分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。
在这个模式中,控制器层负责处理用户的请求并调度相应的业务逻辑,而模型层负责处理数据的持久化和管理。
用户管理增删改查(CRUD) 操作通常涉及对数据库中的实体类(或数据对象)进行操作。因此,将这些操作放在控制器层是很常见的做法。控制器接收来自用户的请求,调用相应的服务方法来执行CRUD操作,并将结果返回给视图层或前端。
另一方面,登录注册等逻辑通常包含更多的业务规则和验证过程,例如用户身份验证、密码加密等。将这些逻辑放在服务层可以提供更好的分离和组织。服务层可以封装业务逻辑,处理用户的注册和登录请求,并协调与用户相关的操作。
这种分层架构的设计有助于代码的可维护性和可测试性,使得不同的组件职责清晰,并易于扩展和修改。
技术选型
- 后端:
+ java
+ spring(依赖注入框架,帮助你管理 Java 对象,集成一些其他的内容)
+ springmvc(web 框架,提供接口访问、restful接口等能力)
+ mybatis(Java 操作数据库的框架,持久层框架,对 jdbc 的封装)
+ mybatis-plus(对 mybatis 的增强,不用写 sql 也能实现增删改查)
+ springboot(快速启动 / 快速集成项目。不用自己管理 spring 配置,不用自己整合各种框架)
+ junit 单元测试库
+ mysql 数据库
- 部署:服务器 / 容器(平台)
初始化项目
后端初始化
- GitHub 搜现成的代码
- SpringBoot 官方的模板生成器(https://start.spring.io/)
- 直接在 IDEA 开发工具中生成 (一般都是自己创建工程)
如果要引入 java 的包,可以去 maven
中心仓库寻找(http://mvnrepository.com/)
新建好工程,然后整合 MyBatis-Plus 跟着官网来就可以了
数据库的设计
数据库设计主要有这么几个步骤
确切地说,数据库设计包括以下几个主要步骤:
1. 需求分析:了解系统的需求和功能,确定需要存储的数据类型和数量。
2. 概念设计:根据需求分析,定义数据库中的实体(表)和它们之间的关系。这通常使用实体关系模型(ER模型)进行表示和设计。
3. 逻辑设计:将概念设计转化为逻辑模型,确定每个表的属性(字段)以及它们的数据类型和约束。这通常使用类似实体关系模型的工具,例如ER图或UML类图。
4. 物理设计:在逻辑模型的基础上,将表和字段映射到具体的数据库管理系统(如MySQL、Oracle等)所支持的数据类型。考虑性能需求和优化,例如选择合适的索引类型和建立索引。
5. 范式化:根据数据库规范化理论,将数据设计为符合一定范式级别(如第一范式、第二范式、第三范式等)的结构,以减少数据冗余和提高数据一致性。
6. 设计表和字段:根据实体和属性的定义,创建每个表并指定它们的字段。每个字段应有正确的数据类型、长度和约束,并命名合适的字段名。
7. 添加索引:根据查询需求和性能优化的考虑,选择适当的字段添加索引。索引可以加快查询速度,但也会增加插入、更新和删除操作的开销。需要谨慎评估和平衡。
8. 表与表之间的关联:根据实体之间的关系,使用外键在表之间建立关联。这能够保持数据的关联性和完整性,以支持数据的关联查询和约束。
- 有那些表(模型对象)
- 表中有那些字段(属性)
- 字段的类型
- 数据库字段是否添加索引
- 表与表之间的关联
我们可以在idea中进行设计
逻辑删除:逻辑删除是指在数据库中不是真正删除记录,而是标记为已删除,使得这些记录在系统中
看起来像已被删除。这比物理删除更加安全、可靠,也能够满足许多场景下的需求。
用户表 (User)
- id (主键) - bigint
- username (昵称) - varchar
- userAccount (登录账号) - varchar
- avatarUrl (头像) - varchar
- gender (性别) - tinyint
- userPassword (密码) - varchar
- phone (电话) - varchar
- email (邮箱) - varchar
- userStatus (用户状态) - int (0: 正常)
- createTime (创建时间) - datetime
- updateTime (更新时间) - datetime
- isDelete 是否删除 0 1(逻辑删除)tinyint
- userRole (用户角色) - int (0: 普通用户, 1: 管理员)
需要注意的字段为
完整代码如下:
create table user
(
username varchar(256) null comment '用户昵称',
id bigint auto_increment comment 'id' primary key,
userAccount varchar(256) null comment '账号',
avatarUrl varchar(1024) null comment '用户头像',
gender tinyint null comment '性别',
userPassword varchar(512) not null comment '密码',
phone varchar(128) null comment '电话',
email varchar(512) null comment '邮箱',
userStatus int default 0 not null comment '状态 0 - 正
常',
createTime datetime default CURRENT_TIMESTAMP null comment '创建时间',
updateTime datetime default CURRENT_TIMESTAMP null on update
CURRENT_TIMESTAMP,
isDelete tinyint default 0 not null comment '是否删除',
userRole int default 0 not null comment '用户角色 0
- 普通用户 1 - 管理员',
userCode varchar(512) null comment '用户编号'
) comment '用户';
当然在spring boot中数据库的连接需要application.xml文件
spring:
application:
name: cms-demo1
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xuebi?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
username: root
password: 123456
server:
port: 8080
后端连接数据库
将数据库创建完成之后,我们对数据库和后端进行连接,这里我们推荐如下图插件
下载安装重启idea之后进行使用
右键点击数据表,选择第一个
可以生成以下文件,实现数据库的连接
- domain:实体对象
- mapper:操作数据库的对象
- mapper.xml:定义了 mapper 对象和数据库的关联,可以在里面自己写 SQL
- service:包含常用的增删改查
- serviceImpl:具体实现 service
报错注意
mybatis-plus会对下划线进行转换,添加以下配置代码即可关闭掉下划线转换
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
那么将数据库与后端连接后,我们进行业务逻辑设计