用大白话解释 持久框架Mybatis-Plus——像“瑞士军刀”一样简单
MyBatis-Plus是啥?
比喻:你有一把普通的螺丝刀(MyBatis),每次拧螺丝都要手动换刀头(写SQL和配置),而MyBatis-Plus就是一把“瑞士军刀”——把常用的刀头(数据库操作功能)都装好,随用随取,省时省力。
核心定义:
MyBatis-Plus(简称MP)是MyBatis的增强工具,在原有框架基础上封装了重复操作(如增删改查),让你少写代码、少犯错,专注业务逻辑 。
MyBatis-Plus有啥用?让数据库操作像“点外卖”一样简单
自动生成代码:
传统MyBatis需要手动写实体类、Mapper接口和XML文件,而MP能一键生成这些代码 。
示例:创建用户表后,MP自动生成对应的User类、UserMapper接口,省去手写代码的麻烦。
通用CRUD操作:
不用再写重复的增删改查SQL。继承BaseMapper后,直接调用insert()、selectById()等方法,像用手机APP下单一样方便。
例子:userMapper.selectList(null)能直接查询所有用户,无需手写SQL。
简化复杂操作:
分页查询:配置分页插件后,调用selectPage()方法即可实现分页 。
乐观锁:防止多人同时修改数据冲突,加个@Version注解就能自动处理 。
减少配置:
传统MyBatis需要配置大量XML文件,而MP通过注解和默认配置简化流程,像“自动导航”一样省心 。
MyBatis-Plus怎么用?五步搞定
比喻:组装一把瑞士军刀(配置项目) → 开始拧螺丝(写代码)。
步骤1:创建项目(买刀)
用IDEA或Spring Initializr创建一个Spring Boot项目。
步骤2:导入依赖(装刀头)
在pom.xml中添加依赖(以MySQL为例):
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!-- MyBatis-Plus启动器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
步骤3:配置数据库(连螺丝孔)
在application.properties中配置数据库连接:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
步骤4:写实体类和Mapper(装刀柄)
1.实体类:用@TableId标记主键(如自增ID):
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}
2.Mapper接口:继承BaseMapper,直接获得CRUD方法:
@Mapper
public interface UserMapper extends BaseMapper<User> {}
步骤5:测试(拧螺丝)
在测试类中调用方法:
@SpringBootTest
class MyAppTests {
@Autowired
private UserMapper userMapper;
@Test
void testSelectAll() {
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
ps:日志不显示:在配置文件中加mybatis-plus.configuration.log-impl=StdOutImpl。
分页失效:需配置分页插件PaginationInterceptor。