引言
一看这个名字,就能看出与 MyBatis 有关。没错,它就是一款 MyBatis 的增强工具。
下面我们先介绍这款工具,然后再介绍在 SpringBoot 中的使用。这样符合博主的习惯:在学习一个新的技术或者新的框架之前,一定会思考这个技术或者框架为什么会出现?解决了什么问题?有没有别的取代方案?
Mybatis Plus简介
1、概念
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2、特性
官网列举了很多特性。不过总的来说,无非就是封装好了常规的 CRUD 操作,无需配置,同时内嵌了很多插件(热加载、代码生成、分页、性能分析等),减少了代码量。
3、关于版本说明
MyBatis Plus2.0 是基于 JDK1.7 及以下版本的。MyBatis Plus3.0 是基于 JDK1.8 及以上版本的(因为插件内部使用了JDK8 的新特性 lambda 表达式)。本系列文章的JDK版本是1.8的,故选择的插件版本是3.0版本的。
使用
MyBatis Plus 的核心功能有三个:
- CRUD 操作;
- 代码生成器;
- 条件生成器。
下面逐一介绍。
CRUD操作
我们来看看 MyBatis 在 SpringBoot 项目中的应用。
准备工作,初始化数据库:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`age` int(3) NOT NULL,
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 21, 'admin');
INSERT INTO `user` VALUES (2, 22, 'test');
SET FOREIGN_KEY_CHECKS = 1;
首先,创建 SpringBoot 项目,引入 maven 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
然后,配置数据库信息和数据库方言:
server.port=8087
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://xx.xx.xx.xx:3306/test
spring.datasource.username=root
spring.datasource.password=root
package com.yanfei1819.mybatisplusdemo.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.sp