| MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生 |
| 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 |
| 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分CRUD 操作,更有强大的条件构造器,满足各类使用需求 |
| 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 |
| 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 |
| 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作 |
| 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere ) |
| 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用 |
| 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询 |
| 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 |
| 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询 |
| 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作 |
-
框架结构

-
创建数据库,并插入数据
| CREATE DATABASE `mybatis_plus` ; |
| use `mybatis_plus`; |
| 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, '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'); |
| <dependencies> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.baomidou</groupId> |
| <artifactId>mybatis-plus-boot-starter</artifactId> |
| <version>3.5.1</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <optional>true</optional> |
| </dependency> |
| |
| <dependency> |
| <groupId>mysql</groupId> |
| <artifactId>mysql-connector-java</artifactId> |
| <scope>runtime</scope> |
| </dependency> |
| </dependencies> |
| spring: |
| |
| datasource: |
| |
| type: com.zaxxer.hikari.HikariDataSource |
| |
| driver-class-name: com.mysql.cj.jdbc.Driver |
| url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&userSSL=false |
| username: root |
| password: 123456 |
| @Data |
| public class User { |
| private Long id; |
| private String name; |
| private Integer age; |
| private String email; |
| } |
| public interface UserMapper extends BaseMapper<User> { |
| } |
| @MapperScan("com.atguigu.mybatisplus.mapper") |
| @SpringBootTest |
| public class MybatisPlusTest { |
| |
| @Autowired |
| private UserMapper userMapper; |
| |
| @Test |
| public void testSelectList(){ |
| |
| userMapper.selectList(null).forEach(System.out::println); |
| } |
| |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了