07-SpringBoot+MyBatis+Spring 技术整合实现商品品牌模块的CRUD操作

微信扫一扫,分享到朋友圈

07-SpringBoot+MyBatis+Spring 技术整合实现商品品牌模块的CRUD操作

需求分析

任何一个电商系统中都有一个商品子系统,而与商品相关联都会有一个品牌信息管理,在当前业务系统设计中我们就是要对商品品牌信息的管理进行设计和实现.

业务架构

在品牌(Brand)信息管理中就是要实现对商品品牌信息的添加,修改,查询,删除等业务,如图所示:

原型设计

基于品牌业务描述,对品牌模块的业务原型进行分析和设计,如图所示:

技术架构

在品牌管理模块实现过程,我们采用典型的C/S架构进行实现.客户端我们基于浏览器进行实现,服务端采用tomcat,数据库使用MySQL.具体应用层基于MVC分层架构进行实现.

技术栈选型

  • 客户端技术:html,css,javascript,bootstrap
  • 服务端技术:spring,mybatis,springboot,thymeleaf
  • 数据库技术:MySQL,SQL

数据库及表设计

drop database if exists dbbrand;
create database dbbrand default character set utf8;
use dbbrand;
create table tb_brand(
id bigint primary key auto_increment,
name varchar(100) not null,
remark text,
createdTime datetime not null
)engine=InnoDB;

项目环境初始化

准备操作

1)JDK 1.8

2)Maven 3.6.3

3)IDEA 2020.2

4)MySQL 5.7+

初始化数据库

打开mysql自带客户端,登录mysql.

mysql -uroot -proot

设置客户端编码

set names utf8;

执行sql脚本

source d:/brand.sql

创建项目Module

添加项目Module依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

项目Module基础配置

打开项目Module配置文件application.properties,并添加如下内容:

server.port=80
spring.datasource.url=jdbc:mysql:///dbbrand?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
mybatis.mapper-locations=classpath:/mapper/*/*.xml
logging.level.com.cy=debug
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

启动项目进行初步环境测试分析

品牌模块整体API设计

品牌数据的查询及呈现

业务描述

将数据库中的品牌信息查询出来,然后在客户端基于html技术进行呈现,如图所示:

服务端查询时序设计

领域对象(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;
//.....
}

数据逻辑对象(DAO)查询方法设计及实现

第一步:定义BrandDao接口,代码如下:

package com.cy.pj.brand.dao;
@Mapper
public interface BrandDao{
}

第二步:在BrandDao中定义品牌查询方法,代码如下:

List<Brand> findBrands(String name);

第三步:基于查询方法定义SQL映射(本次sql映射基于注解方式定义),代码如下:

@Select("select * from tb_brand where name like concat ('%',#{name},'%')")
List<Brand> findBrands(String name);

当然,对于这个SQL映射也可以写到映射文件(BrandMapper.xml)

第四步:对数据层的查询方法进行单元测试,代码如下:

package com.cy.pj.brand.dao;
@SpringBootTests
public class BrandDaoTests{
@Autowired
private BrandDao brandDao;
@Test
void testFindBrands(){
List<Brand> list=brandDao.findBrands("TCL");
for(Brand b:list){
System.out.println(b);
}
}
}

第五步:测试过程中的BUG分析?

  • 测试输出为对象地址表现形式,而不是内容?(检查toString方法是否重写)

业务逻辑对象(Service)查询方法设计及实现

控制逻辑对象(Controller)查询方法设计及实现

客户端品牌列表页面设计及实现

启动服务进行访问测试并对结果进行分析

启动及运行过程中的Bug分析及解决方案

研究团队展示可照亮室内的特殊木材处理工艺

上一篇

妻子为孩子教育太焦虑 中年男子半夜在马路上看电视崩溃哭诉

下一篇

你也可能喜欢

07-SpringBoot+MyBatis+Spring 技术整合实现商品品牌模块的CRUD操作

长按储存图像,分享给朋友