【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源

使 用 Docker 安 装 MySQL
Mybatis插件
MybatisPlus的入门
搭建后台服务系统
实现新增房源服务
前后端进行整合,实现新增房源功能

1、使用Docker安装MySQL

好客租房项目的底层数据库采用MySQL,而MySQL采用衍生版本Percona,并且采用docker容器化的方式进行部 署。

1.1、什么是percona?
Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
Percona Server 只包含 MySQL 的服务器版,并没有提供相应对 MySQL 的 Connector 和 GUI 工具进行改进。
Percona Server 使用了一些 google-mysql-tools, Proven Scaling, Open Query 对 MySQL 进行改造。官网:https://www.percona.com/software/mysql-database

1.2、安装部署

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第1张图片

 docker run --privileged=true -itd  --name percona -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23 

无法启动容器时的错误:

Initializing database
mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)
2020-03-06T04:39:22.601021Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-03-06T04:39:22.602808Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
2020-03-06T04:39:22.602826Z 0 [ERROR] Aborting

解决办法:

给映射的宿主机文件进行权限更改:

[root@VM_0_4_centos data]# chmod 777 mysql-data

测试:

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第2张图片
2、MybatisPlus入门

在后台系统服务的开发过程中,必然要和数据库进行交互,在本套课程中,ORM这一层的技术选型,我们采用
Mybatis框架作为持久层框架,原因是Mybatis对SQL语句编写更加的灵活。
为了提升开发的效率,所以选用MybatisPlus作为mybatis的插件,以提升开发的效率。下面我们来学习下
MybatisPlus插件的使用。
2.1、简介
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第3张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第4张图片
2.2、特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 XML 热加载:Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD
操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
支持关键词自动转义:支持数据库关键词(order、key )自动转义,还可自定义关键词
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通
List 查询

内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入攻击
2.3、架构
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第5张图片

2.4、快速入门
2.4.1、创建表
首先,创建数据库:haoke:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第6张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第7张图片
2.4.2、创建工程以及导入依赖
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第8张图片
导入依赖:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第9张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第10张图片
2.4.3、编写application.properties文件
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第11张图片
2.4.4、创建User对象
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第12张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第13张图片
2.4.5、编写UserMapper
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第14张图片
2.4.6、编写SpringBoot启动类
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第15张图片
2.4.7、编写单元测试用例
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第16张图片
测试结果:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第17张图片
可以看到,通过简单的一些代码的编写即可实现数据的查询操作。

2.5、BaseMapper
在MybatisPlus中,BaseMapper中定义了一些常用的CRUD方法,当我们自定义的Mapper接口继承BaseMapper 后即可拥有了这些方法。
需要说明的是:这些方法仅适合单表操作。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第18张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第19张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第20张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第21张图片
2.5.1、like查询
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第22张图片
在这里插入图片描述
2.5.2、条件查询

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第23张图片
在这里插入图片描述
更多查看:http://mp.baomidou.com/guide/wrapper.html#abstractwrapper
2.5.3、插入数据
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第24张图片
设置自增长id:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第25张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第26张图片
2.5.4、删除数据

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第27张图片
2.5.5、修改数据
根据id修改数据,修改不为null的字段。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第28张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第29张图片
2.5.6、分页查询
首先需要配置分页插件:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第30张图片
下面进行查询:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第31张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第32张图片
2.6、配置
虽然在MybatisPlus中可以实现零配置,但是有些时候需要我们自定义一些配置,就需要使用Mybatis原生的一些配 置文件方式了。
application.properties:
在这里插入图片描述
更多配置:http://mp.baomidou.com/guide/config.html#%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE

2.7、Lombok
lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,尤其是针对pojo,在
MybatisPlus中使用lombox。

官网:https://projectlombok.org/

2.7.1、配置安装
导入依赖:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第33张图片
安装IDEA插件:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第34张图片
如果不安装插件,程序可以正常执行,但是看不到生成的一些代码,如:get、set方法。
2.7.2、常用注解

@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、
hashCode 、 toString                    方 法@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Slf4j:注解在类上;为类提供一个 属性名为log 的 slf4j日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
@Builder:使用Builder模式构建对象

测试一:使用@Data注解
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第35张图片
是不是很神奇?!
测试二:使用@Slf4j注解
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第36张图片
运行结果:
在这里插入图片描述
测试三:@AllArgsConstructor注解的使用
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第37张图片
测试四:@Builder
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第38张图片
测试结果:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第39张图片
2.7.3、使用lombok改造User对象
将前面测试的User对象进行改造。

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第40张图片
3、搭建后台服务系统

后台服务系统采用SOA的架构思想,使用dubbo作为服务治理框架进行搭建。 后台服务系统架构:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第41张图片
工程结构:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第42张图片
3.1、创建itcast-haoke-manage工程
pom.xml文件:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第43张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第44张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第45张图片
3.2、创建itcast-haoke-manage-api-server工程
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第46张图片
3.3、创建itcast-haoke-manage-dubbo-server工程
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第47张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第48张图片

4、新增房源服务

接下来,我们实现新增房源功能。
4.1、数据结构
tb_estate(楼盘表):

1CREATE TABLE `tb_estate` (
2`id` bigint(20) NOT NULL AUTO_INCREMENT,
3`name` varchar(100) DEFAULT NULL COMMENT '楼盘名称',
4`province` varchar(10) DEFAULT NULL COMMENT '所在省',
5`city` varchar(10) DEFAULT NULL COMMENT '所在市',
6`area` varchar(10) DEFAULT NULL COMMENT '所在区',
7`address` varchar(100) DEFAULT NULL COMMENT '具体地址',
8`year` varchar(10) DEFAULT NULL COMMENT '建筑年代',
9`type` varchar(10) DEFAULT NULL COMMENT '建筑类型',
10`property_cost` varchar(10) DEFAULT NULL COMMENT '物业费',
11`property_company` varchar(20) DEFAULT NULL COMMENT '物业公司',
12`developers` varchar(20) DEFAULT NULL COMMENT '开发商',
13`created` datetime DEFAULT NULL COMMENT '创建时间',
14`updated` datetime DEFAULT NULL COMMENT '更新时间',
15PRIMARY KEY (`id`)
16) ENGINE=InnoDB AUTO_INCREMENT=1006 DEFAULT CHARSET=utf8 COMMENT='楼盘表'; 17
18--初始数据
19INSERT INTO `tb_estate` (`id`, `name`, `province`, `city`, `area`, `address`,
`year`, `type`, `property_cost`, `property_company`, `developers`, `created`,
`updated`) VALUES ('1001', '中远两湾城', '上海市', '上海市', '普陀区', '远景路97弄',
'2001', '塔楼/板楼', '1.5', '上海中远物业管理发展有限公司', '上海万业企业股份有限公司', '2018-
11-06 23:00:20', '2018-11-06 23:00:23');
20INSERT INTO `tb_estate` (`id`, `name`, `province`, `city`, `area`, `address`,
`year`, `type`, `property_cost`, `property_company`, `developers`, `created`,
`updated`) VALUES ('1002', '上海康城', '上海市', '上海市', '闵行区', '莘松路958弄',
'2001', '塔楼/板楼', '1.5', '盛孚物业', '闵行房地产', '2018-11-06 23:02:30', '2018-11-27
23:02:33')
21INSERT INTO `tb_estate` (`id`, `name`, `province`, `city`, `area`, `address`,
`year`, `type`, `property_cost`, `property_company`, `developers`, `created`,
`updated`) VALUES ('1003', '保利西子湾', '上海市', '上海市', '松江区', '广富林路1188弄',
'2008', '塔楼/板楼', '1.75', '上海保利物业管理', '上海城乾房地产开发有限公司', '2018-11-06
23:04:22', '2018-11-06 23:04:25');
22INSERT INTO `tb_estate` (`id`, `name`, `province`, `city`, `area`, `address`,
`year`, `type`, `property_cost`, `property_company`, `developers`, `created`,
`updated`) VALUES ('1004', '万科城市花园', '上海市', '上海市', '松江区', '广富林路1188弄',
'2002', '塔楼/板楼', '1.5', '上海保利物业管理', '上海城乾房地产开发有限公司', '2018-11-13
16:43:40', '2018-11-13 16:43:42');
23INSERT INTO `tb_estate` (`id`, `name`, `province`, `city`, `area`, `address`,
`year`, `type`, `property_cost`, `property_company`, `developers`, `created`,
`updated`) VALUES ('1005', '上海阳城', '上海市', '上海市', '闵行区', '罗锦路888弄',
'2002', '塔楼/板楼', '1.5', '上海莲阳物业管理有限公司', '上海莲城房地产开发有限公司', '2018-
11-06 23:23:52', '2018-11-06 23:23:55');

tb_house_resources(房源表):

1CREATE TABLE `tb_house_resources` (
2`id` bigint(20) NOT NULL AUTO_INCREMENT,
3`title` varchar(100) DEFAULT NULL COMMENT '房源标题',
4`estate_id` bigint(20) DEFAULT NULL COMMENT '楼盘id',
5`building_num` varchar(5) DEFAULT NULL COMMENT '楼号(栋)',
6`building_unit` varchar(5) DEFAULT NULL COMMENT '单元号',
7`building_floor_num` varchar(5) DEFAULT NULL COMMENT '门牌号',
8`rent` int(10) DEFAULT NULL COMMENT '租金',
9`rent_method` tinyint(1) DEFAULT NULL COMMENT '租赁方式,1-整租,2-合租',
10`payment_method` tinyint(1) DEFAULT NULL COMMENT '支付方式,1-付一押一,2-付三押一,3-
付六押一,4-年付押一,5-其它',
11`house_type` varchar(255) DEFAULT NULL COMMENT '户型,如:2室1厅1卫',
12`covered_area` varchar(10) DEFAULT NULL COMMENT '建筑面积',
13`use_area` varchar(10) DEFAULT NULL COMMENT '使用面积',
14`floor` varchar(10) DEFAULT NULL COMMENT '楼层,如:8/26',
15`orientation` varchar(2) DEFAULT NULL COMMENT '朝向:东、南、西、北',
16`decoration` tinyint(1) DEFAULT NULL COMMENT '装修,1-精装,2-简装,3-毛坯',
17`facilities` varchar(50) DEFAULT NULL COMMENT '配套设施, 如:1,2,3',
18`pic` varchar(200) DEFAULT NULL COMMENT '图片,最多5张',
19`house_desc` varchar(200) DEFAULT NULL COMMENT '描述',
20`contact` varchar(10) DEFAULT NULL COMMENT '联系人',
21`mobile` varchar(11) DEFAULT NULL COMMENT '手机号',
22	`time` tinyint(1) DEFAULT NULL COMMENT '看房时间,1-上午,2-中午,3-下午,4-晚上,5-全天',
23`property_cost` varchar(10) DEFAULT NULL COMMENT '物业费',
24`created` datetime DEFAULT NULL,
25`updated` datetime DEFAULT NULL,
26PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='房源表';

4.2、创建itcast-haoke-manage-dubbo-server-house-resources工程
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第49张图片
itcast-haoke-manage-dubbo-server-house-resources-dubbo-interface
对外提供的sdk包
只提供pojo实体以及接口,不提供实现类

itcast-haoke-manage-dubbo-server-house-resources-dubbo-service

具体实现
pom.xml文件:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第50张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第51张图片
4.3、创建子工程
4.3.1、itcast-haoke-manage-dubbo-server-house-resources-dubbo-interface
pom.xml:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第52张图片
4.3.2、itcast-haoke-manage-dubbo-server-house-resources-dubbo-service
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第53张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第54张图片
4.4、编写BasePojo文件
编写BasePojo,所有的pojo类都要继承该类,在该类中定义了created、updated字段,表明在每一个表中都需要 有这2个字段。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第55张图片
4.5、使用MybatisPlus的AutoGenerator插件生成代码文件
4.5.1、创建itcast-haoke-manage-dubbo-server-generator工程
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第56张图片
pom.xml文件:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第57张图片
4.5.2、编写CodeGenerator
代码参考官方提供代码实现。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第58张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第59张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第60张图片
4.5.3、运行代码
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第61张图片
生成的结果如下:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第62张图片
可以看到,自动生成了controller、entity、mapper、service等内容。其实,一般只需要entity就可以了,也就是pojo类。
生成的类是这样的:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第63张图片
@EqualsAndHashCode(callSuper = true)
这个是自动生成equals和hashCode方法,我们一般不需要,所以将该注解去掉
@Accessors(chain = true)
这个是表示,生成的set方法将采用链式编程方式,建议保留。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第64张图片
4.5.4、将整理到pojo文件并且拷贝到工程
将整理的pojo文件拷贝到itcast-haoke-manage-dubbo-server-house-resources-dubbo-interface工程中。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第65张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第66张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第67张图片
4.6、定义新增房源的dubbo服务
在itcast-haoke-manage-dubbo-server-house-resources-dubbo-interface工程。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第68张图片
4.7、实现新增房源服务
4.7.1、编写application.properties配置文件
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第69张图片
4.7.2、编写HouseResourcesMapper接口
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第70张图片
编写MybatisPlus配置类:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第71张图片
4.7.3、编写service
这里编写的Service是Spring的service,不是dubbo服务,因为需要控制事务以及一些逻辑。
先定义接口:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第72张图片
编写BaseService实现:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第73张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第74张图片
具体实现类:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第75张图片
4.7.4、实现dubbo服务
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第76张图片
4.8、编写启动类
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第77张图片
4.9、进行测试
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第78张图片
可以看到,已经有服务注册到了注册中心。

5、实现RESTful接口

itcast-haoke-manage-api-server工程是,为前端系统提供接口服务,是dubbo服务的消费方。
5.1、添加依赖
因为是dubbo的服务方,需要添加dubbo提供方提供的接口、pojo的依赖。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第79张图片
5.2、编写service
HouseResourcesService用于调用dubbo服务。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第80张图片
5.3、编写controller
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第81张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第82张图片
5.4、编写启动类
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第83张图片
5.5、编写application.properties配置文件

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第84张图片
5.6、运行启动服务
运行即可启动tomcat服务,进行测试:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第85张图片
结果:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第86张图片
测试数据:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第87张图片
下面,可以整合前端进行开发了。
6、整合前端系统

6.1、增加房源标题
之前的前端页面实现中,缺少了标题一项,现补上。
在这里插入图片描述
效果:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第88张图片
6.2、增加model
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第89张图片
form.js文件:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第90张图片
haoke.js,用于请求服务并且处理业务逻辑。
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第91张图片
6.4、修改表单提交地址
AddResource.js:
在这里插入图片描述
6.5、通过反向代理解决跨域问题
由于我们前端系统和后台服务系统的端口不同,会导致跨域问题,我们通过umi提供的反向代理功能解决这个问 题。
配置地址:https://umijs.org/zh/config/#proxy 在config.js中进行配置proxy:
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第92张图片
配置代理后,以/haoke开头的请求,就会被代理。代理效果是这样的:
请 求 :http://localhost:8000/haoke/house/resources 实际:http://127.0.0.1:18080/house/resources
6.6、测试

【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第93张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第94张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第95张图片
【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源_第96张图片
可以看到,数据以及插入到数据库,说明整个流程已经跑通了。

你可能感兴趣的:(【ReactJs+springBoot项目——租房】第2章:mysqlPercona安装+ MybatisPlus+搭建后台服务系统+前后端整合实现新增房源)