mybatispluS
时间: 2025-06-01 11:05:18 浏览: 7
### MyBatisPlus 使用指南及常见问题解答
#### 1. 替代 MyBatis Starter
MyBatisPlus 提供了一个可以直接替代传统 MyBatis 的 `starter` 工具包,通过引入以下依赖即可完成集成[^1]:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
```
#### 2. SQL 日志打印功能
为了便于调试和问题排查,MyBatis-Plus 支持 SQL 日志打印功能。可以通过配置文件设置日志级别为 DEBUG 来查看详细的 SQL 执行情况[^2]。如果需要更灵活的日志控制,可以在 `mybatis-config.xml` 文件中指定日志实现方式,例如使用 SLF4J[^3]:
```xml
<setting name="logImpl" value="SLF4J"/>
```
#### 3. 主键生成策略
MyBatis-Plus 提供多种主键生成策略,简化了主键生成逻辑。常见的主键生成方式包括自增、UUID 和雪花算法等。以下是 UUID 主键生成的一个简单示例[^2]:
```java
@TableId(type = IdType.ASSIGN_UUID)
private String id;
```
#### 4. 逻辑删除功能
逻辑删除是一种保护数据的方式,允许标记记录为“已删除”,而无需真正从数据库中移除数据。这有助于后续的数据恢复操作。在实体类中标记逻辑删除字段如下所示[^2]:
```java
@TableLogic
private Integer deleted;
```
对应的数据库设计应包含一个表示删除状态的字段,默认值通常设为 `0` 表示未删除。
#### 5. 字段类型处理
对于复杂的字段类型(如 JSON),MyBatis-Plus 能够自动解析并存储到数据库中。假设有一个字段用于保存 JSON 数据,则可通过注解来定义其转换规则[^2]:
```java
@TableField(typeHandler = JacksonTypeHandler.class)
private Map<String, Object> configInfo;
```
#### 6. 多租户支持
多租户模式下,不同用户共享同一套系统但彼此间数据相互独立。MyBatis-Plus 提供了一种简单的机制来实现这一需求——即通过拦截器动态添加条件过滤特定用户的记录[^2]。下面是一个基本的多租户配置例子:
```java
@Configuration
public class TenantConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
TenantLineInnerInterceptor tenantLineInnerInterceptor = new TenantLineInnerInterceptor((sqlParser, mbHelper) -> {
List<Object> tenantIds = Arrays.asList("tenant_id_1", "tenant_id_2");
return tenantIds;
});
interceptor.addInnerInterceptor(tenantLineInnerInterceptor);
return interceptor;
}
}
```
---
### XML 配置编译打包问题解决方法
当项目中有单独的 `mybatis-config.xml` 文件时,可能会遇到该文件无法被打入最终 JAR 包中的问题。这是因为 Maven 默认不会将资源目录下的非 `.properties`, `.yml` 等扩展名的文件复制过去。解决方案是在 `pom.xml` 中显式声明要包含哪些类型的资源配置项[^3]:
```xml
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
```
---
阅读全文
相关推荐












