MyBatis-Plus(简称 MP)是一个基于 MyBatis 的开源增强工具库,它旨在简化开发人员使用 MyBatis 进行数据库访问的流程,并提供了很多有用的功能和增强特性。
- CRUD 操作的简化:
MyBatis-Plus 提供了丰富的 API,使得进行数据库的增删改查操作变得更加简单。它通过扩展 MyBatis 的 BaseMapper 接口,为每个实体类提供了诸如插入、更新和删除等基本操作的实现方法,无需编写繁琐的 SQL 语句。 - 条件构造器:
MyBatis-Plus 提供了强大的条件构造器,可以通过链式调用的方式构建复杂的查询条件。使用条件构造器,你可以方便地添加条件、排序规则和分页信息,构建出灵活的条件查询语句。 - 分页查询:
MyBatis-Plus 内置了分页查询功能,支持多种数据库(如 MySQL、Oracle 等),以及基于物理分页和内存分页的方式。使用分页功能,你可以轻松地进行数据的分页查询操作。 - 通用 Mapper:
MyBatis-Plus 还提供了通用 Mapper 功能,它通过简单的配置即可实现单表的基本 CRUD 操作。通用 Mapper 会根据实体类的字段自动生成对应的 SQL 语句,大大减少了手写 SQL 的工作量。 - 自动生成代码:
MyBatis-Plus 支持根据数据库表结构自动生成实体类、Mapper 接口和 XML 映射文件的代码。通过简单的配置,你可以快速生成基础的 CRUD 操作代码,节省了手动编写这些代码的时间和精力。 - 增强的 CRUD 操作:
MyBatis-Plus 还提供了一些增强的 CRUD 操作,如逻辑删除、乐观锁等。逻辑删除允许你在删除数据时,只是修改数据的标记字段,而不是真正地删除数据;乐观锁则通过版本号等机制来实现并发控制,避免多个线程同时修改同一条数据。
总的来说,MyBatis-Plus 提供了很多方便实用的功能,可以大大简化 MyBatis 的使用和开发工作。它的文档详细且完善,有很多示例代码可以参考。如果你使用 MyBatis,强烈推荐尝试 MyBatis-Plus 提供的便利和增强能力。
2、快速入门 1、准备数据库
create database if not exists mpdb character set utf8;
use mpdb;
CREATE TABLE user (
id bigint(20) primary key auto_increment,
name varchar(32) not null,
password varchar(32) not null,
age int(3) not null ,
tel varchar(32) not null
);
insert into user values(null,'tom','123456',12,'12345678910');
insert into user values(null,'jack','123456',8,'12345678910');
insert into user values(null,'jerry','123456',15,'12345678910');
insert into user values(null,'tom','123456',9,'12345678910');
insert into user values(null,'snake','123456',28,'12345678910');
insert into user values(null,'张益达','123456',22,'12345678910');
insert into user values(null,'张大炮','123456',16,'12345678910');
2、创建项目
名称
boot-mp-demo1
依赖
<!-- springboot父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
</parent>
<properties>
<!-- jdk版本 -->
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- 当前WEB项目需要的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 集成Junit依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
配置文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mpdb?serverTimezone=UTC
username: root
password: root
3、创建实体
public class User {
private Long id;
private String name;
private String password;
private Integer age;
private String tel;
} 4、准备Mapper
继承 BaseMapper<T> 接口
5、测试
创建测试类
注入 UserMapper
查询所有
5、更多详细可以翻阅官网