mybatisplus用法大全
时间: 2025-04-18 10:47:45 浏览: 27
### MyBatis Plus 使用教程
#### 一、简介
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生[^1]。
#### 二、核心特性
- **无侵入**: 对现有 MyBatis 支持零改动。
- **性能监控**: 插件提供全局拦截器支持,可自定义 SQL 执行分析规则。
- **内置分页插件**: 基于 MyBatis 物理分页,开发者无需关心具体实现细节。
- **多租户支持**: 只需简单配置即可完成多租户功能适配。
- **CRUD 操作免写 XML**: 自动映射实体类到表结构,极大减少模板代码编写量。
#### 三、环境搭建
为了使用 MyBatis-Plus ,需要先创建 Maven 或 Gradle 工程并引入依赖项。以下是 Maven POM 文件中的部分配置:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本号</version>
</dependency>
```
接着,在 `application.properties` 中设置数据源连接参数以及 MyBatis-Plus 相关属性:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
...
mybatis-plus.mapper-locations=classpath*:mapper/*.xml
mybatis-plus.typeAliasesPackage=com.example.entity
```
#### 四、基础 CRUD 示例
假设有一个名为 User 的实体对象及其对应的 Mapper 接口,则可以通过如下方式执行基本增删改查操作:
```java
// 实体类
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
// Mapper接口继承BaseMapper<T>, T代表当前实体类型
public interface UserMapper extends BaseMapper<User> {}
@Autowired
private UserMapper userMapper;
@Test
void testInsert() {
User user = new User();
user.setName("张三");
user.setAge(25);
int result = userMapper.insert(user); // 返回受影响行数
}
```
上述例子展示了如何利用 MyBatis-Plus 进行简单的插入操作,其他如查询、更新和删除的操作也十分简便,只需调用相应的方法即可。
#### 五、高级特性
除了常规的 CRUD 功能外,MyBatis-Plus 还提供了诸如条件构造器 Wrapper、乐观锁机制等功能模块来满足更复杂的业务需求。例如,当处理并发场景下的记录修改时,可以启用乐观锁定策略防止脏读现象的发生;而在构建复杂查询语句方面,则推荐采用 Lambda 表达式的 Conditions 构造方法以提升代码可读性和维护性。
#### 六、集成测试
最后提醒一点,在日常开发过程中应当重视单元/集成测试环节。借助 JUnit 结合 SpringBootTest 注解能够轻松模拟真实运行环境来进行各类逻辑验证工作,确保应用程序稳定可靠地运转。
阅读全文
相关推荐


















