1.业务描述
1.1 需求描述
任何一个电商系统中都有一个商品子系统,而与商品相关联都会有一个品牌信息管理,在当前业务系统设计中我们就是要对商品品牌信息的管理进行设计和实现
1.2 业务架构分析
在品牌(Brand)信息管理中心就是要实现对商品品牌信息的添加,修改,查询,删除等业务,如图所示:
1.3 业务基本原型设计
1.3.1 基于品牌业务描述,对品牌模块的业务原型进行分析和设计,如图所示:
- 品牌列表页面
- 品牌编辑页面
1.4 项目技术架构分析及设计
在品牌管理模块实现过程,我们采用典型的C/S架构进行实现.客户端我们基于浏览器进行实现,服务端采用tomcat,数据库使用MySQL.具体应用层基于MVC分层架构进行实现
1.5 项目技术栈应用分析及选型
- 客户端技术:html,css,javascript,bootstrap
- 服务端技术:hikaricp,mybatis,spring,springboot,thymeleaf
- 数据库技术:mysql,sql
- 开发工具集:jdk1.8,maven3.6.3,idea2020.1
1.6 项目品牌模块核心API分析与设计
基于分层架构设计思想,现对品牌API进行设计,如图所示:
2.数据库及表的分析与设计
2.1 设计并创建数据库
2.1.1 假如数据库已存在,则先删除数据库,代码如下:
drop database if exists dbbrand;
2.1.2 创建新的数据库,代码如下:
create database dbbrand default character set utf8;
2.2 设计并创建品牌(Brand)表
2.2.1 打开数据库,语句如下:
create database dbbrand default character set utf8;
2.2.2 在dbbrand数据库中创建品牌表
create table tb_brand(
id bigint primary key auto_increment,
name varchar(100) not null,
remark text,
createdTime datetime not null
)engine=InnoDB;
2.3 基于SQL脚本执行数据库初始化
将数据库设计脚本写到brand.sql中,然后按如下步骤执行:
2.3.1 打开mysql自带客户端,登录mysql,指令如下:
mysql -uroot -proot
2.3.2 设置客户端编码,指令如下:
set names utf8;
2.3.3 执行sql脚本,指令如下:
source d:/brand.sql
2.3.4 脚本执行成功以后,在客户端查询数据之前,先执行如下语句:
set names gbk;
3.项目环境初始化
3.1 准备操作
1).JDK 1.8
2).Maven 3.6.3
3).IDEA 2020.1
4).MySQL 5.6
3.2 创建项目Module
打开idea,然后基于设计,创建项目module,如图所示:
3.3 添加项目Module依赖
3.3.1 Mysql驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
3.3.2 Spring jdbc提供了HikariCP连接池
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
3.3.3 MyBatis资源
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
3.3.4 Spring Web依赖(内置一个tomcat服务)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.3.5 Thymeleaf依赖(html模板引擎)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
3.4 项目Module基础配置
打开项目Module配置文件application.properties,并添加如下内容:
# spring server
server.port=80
# spring datasource
spring.datasource.url=jdbc:mysql:///dbbrand?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
# spring mybatis
mybatis.mapper-locations=classpath:/mapper/*/*.xml
# spring log
logging.level.com.cy=debug
#spring thymeleaf
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
3.5 启动项目进行初步环境测试分析
3.5.1 端口号被占用
3.5.2 数据库连接错误
4.品牌数据的查询及呈现
4.1 业务描述
将数据库中的品牌信息查询出来,然后在客户端基于html技术进行呈现,如图所示:
4.2 服务端品牌查询时序设计
基于查询请求,进行访问时序设计,如图所示:
4.3 领域对象(POJO)设计及实现
设置Brand对象,基于此对象封装从数据库查询到的品牌信息,代码如下:
package com.cy.pj.brand.pojo;
import java.util.Date;
public class Brand {
private Integer id;
private String name;
private String remark;
private Date createdTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
@Override
public String toString() {
return "Brand{" +
"id=" +