![697d085261c003d0b8eda3f12559bf83.png](https://i-blog.csdnimg.cn/blog_migrate/924f7a23b008c4f647ab2201f4300a8d.jpeg)
MyBatis 增强工具包,简化 CRUD 操作。
启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作、提高生产率而生。
Maven 坐标
http://search.maven.org/#search%7Cga%7C1%7Cmybatis-plus
com.baomidou mybatis-plus maven 官方最新版本号为准
一、与其他 Mybatis 工具包区别
- 1、优势一、 Mybatis-plus 启动注入非拦截实现、性能更优。
- 2、优势二、多种 ID 选择,类型 ID_WORKER , UUID 全局唯一、支持实现分库。
- 3、优势三、完全继承原生易理解、扩展使用,支持自定义表、字段、ID动态注解。
- 其他、等待您去发现!。。。。
![cf3e328a5f8e8a6b30e27b2961f108b5.png](https://i-blog.csdnimg.cn/blog_migrate/fd1e5fd5ddca7566a62502108f4997b1.jpeg)
集成后自动拥有如下 CRUD 方法:
![3ef7a64b1eb276bd6ce59a1f89fde1a4.png](https://i-blog.csdnimg.cn/blog_migrate/a74717ce4a2056db3582d233d10c77db.jpeg)
二、功能
- 1、单表 CURD (简单 + 批量)操作,自动完成(支持 like 比较等查询)。
- 2、分页插件,Count 查询 自动 或 自定义 SQL 查询。
- 3、Spring 根据不同环境加载不同配置支持(支持 typeAliasesPackage 通配符扫描)。
【自动生成 Entity Mapper Service 文件】
三、使用
快速开始
我们将通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能,在此之前,我们假设您已经:
- 拥有 Java 开发环境以及相应 IDE
- 熟悉 Spring Boot
- 熟悉 Maven
现有一张 User 表,其表结构如下:
idnameageemail1Jone18test1@baomidou.com2Jack20test2@baomidou.com3Tom28test3@baomidou.com4Sandy21test4@baomidou.com5Billie24test5@baomidou.com
其对应的数据库 Schema 脚本如下:
DROP TABLE IF EXISTS user;CREATE TABLE user(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id));
其对应的数据库 Data 脚本如下:
DELETE FROM user;INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');
Question
如果从零开始用 MyBatis-Plus 来实现该表的增删改查我们需要做什么呢?
#
初始化工程
创建一个空的 Spring Boot 工程(工程将以 H2 作为默认数据库进行演示)
TIP
可以使用 Spring Initializr 快速初始化一个 Spring Boot 工程
#
添加依赖
引入 Spring Boot Starter 父工程:
org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE
引入 spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、lombok、h2 依赖:
org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test testorg.projectlombok lombok truecom.baomidou mybatis-plus-boot-starter 3.1.0com.h2database h2 runtime
#
配置
在 application.yml 配置文件中添加 H2 数据库的相关配置:
# DataSource Configspring: datasource: driver-class-name: org.h2.Driver schema: classpath:db/schema-h2.sql data: classpath:db/data-h2.sql url: jdbc:h2:mem:test username: root password: test
在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:
@SpringBootApplication@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")public class Application { public static void main(String[] args) { SpringApplication.run(QuickStartApplication.class, args); }}
#
编码
编写实体类 User.java(此处使用了 Lombok 简化代码)
@Datapublic class User { private Long id; private String name; private Integer age; private String email;}
编写Mapper类 UserMapper.java
public interface UserMapper extends BaseMapper {}
#
开始使用
添加测试类,进行功能测试:
@RunWith(SpringRunner.class)@SpringBootTestpublic class SampleTest { @Autowired private UserMapper userMapper; @Test public void testSelect() { System.out.println(("----- selectAll method test ------")); List userList = userMapper.selectList(null); Assert.assertEquals(5, userList.size()); userList.forEach(System.out::println); }}
TIP
UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper,所以不填写就是无任何条件
控制台输出:
User(id=1, name=Jone, age=18, email=test1@baomidou.com)User(id=2, name=Jack, age=20, email=test2@baomidou.com)User(id=3, name=Tom, age=28, email=test3@baomidou.com)User(id=4, name=Sandy, age=21, email=test4@baomidou.com)User(id=5, name=Billie, age=24, email=test5@baomidou.com)
更多详情请参考官网:https://mp.baomidou.com/
喜欢点个关注,每天都有精彩好文推荐。