day04-服务的具体实现以及MybatisPlus的入门

课程内容

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

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

  7. 1.1、什么是percona

Percona MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

Percona Server 只包含 MySQL 的服务器版,并没有提供相应对 MySQL Connector GUI 工具进行改进。

Percona Server 使用了一些 google-mysql-tools, Proven Scaling, Open Query MySQL 进行改造。官网:Percona Software for MySQL

1.2、安装部署

day04-服务的具体实现以及MybatisPlus的入门_第1张图片

2MybatisPlus入门 

在后台系统服务的开发过程中,必然要和数据库进行交互,在本套课程中,ORM这一层的技术选型,我们采用Mybatis框架作为持久层框架,原因是MybatisSQL语句编写更加的灵活。

为了提升开发的效率,所以选用MybatisPlus作为mybatis的插件,以提升开发的效率。下面我们来学习下MybatisPlus插件的使用。

2.1、简介

MyBatis-Plus简称 MP是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。day04-服务的具体实现以及MybatisPlus的入门_第2张图片

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P2P,基友搭配,效率翻倍。

 2.2、特性

  无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

  损害:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

  强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 作,更有强大的条件构造器,满足各类使用需求

  支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 

  支持多种数据库:支持 MySQLMariaDBOracleDB2H2HSQLSQLitePostgre

SQLServer2005SQLServer 等多种数据库

支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题

支持 XML 热加载Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动

支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD操作

支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere 

支持关键词自动转义:支持数据库关键词(orderkey )自动转义,还可自定义关键

内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper Model Service Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List 查询

  内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询 

  内置全局拦截插件:提供全表 delete update 操作智能分析阻断,也可自定义拦截规则,预防误操作

 内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入攻击

2.3、架构

day04-服务的具体实现以及MybatisPlus的入门_第3张图片

2.4、快速入门

2.4.1、创建表

首先,创建数据库:haoke:

day04-服务的具体实现以及MybatisPlus的入门_第4张图片

CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 插入数据
INSERT INTO `user` (`id`, `name`, `age`, `email`) VALUES ('1', 'Jone', '18', '[email protected]');
INSERT INTO `user` (`id`, `name`, `age`, `email`) VALUES ('2', 'Jack', '20', '[email protected]');
INSERT INTO `user` (`id`, `name`, `age`, `email`) VALUES ('3', 'Tom', '28', '[email protected]');
INSERT INTO `user` (`id`, `name`, `age`, `email`) VALUES ('4', 'Sandy', '21', '[email protected]');
INSERT INTO `user` (`id`, `name`, `age`, `email`) VALUES ('5', 'Billie', '24',
'[email protected]');

2.4.2、创建工程以及导入依赖

day04-服务的具体实现以及MybatisPlus的入门_第5张图片

导入依赖:

 

你可能感兴趣的:(好客租房,spring,boot,dubbo)