1. 添加相关依赖

在项目的pom.xml文件中添加以下依赖,以集成Spring Boot和MyBatis:

<!-- Spring Boot Starter -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
​
<!-- MyBatis Starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>
​
<!-- MySQL Connector -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

确保将version值设置为你所使用的相应版本。

2. 数据源配置

application.properties(或application.yml)文件中配置数据库连接信息,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3. MyBatis配置拦截

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
​
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
        this.strictInsertFill(metaObject, "updateTime", Date.class, new Date());
        // 在这里添加租户字段的填充逻辑
    }
​
    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
    }
}

在上述示例中,insertFill方法用于处理插入操作时的自动填充逻辑,updateFill方法用于处理更新操作时的自动填充逻辑。strictInsertFillstrictUpdateFill方法是MyBatis-Plus提供的方法,用于执行严格模式的填充。

4. MyBatis配置

创建一个MyBatis配置类,用于配置MyBatis的相关设置和扫描Mapper接口。例如:

@Configuration
@MapperScan("com.example.myapp.mapper")
public class MyBatisConfig {
  
  
    @Bean
    public MyMetaObjectHandler myMetaObjectHandler() {
        return new MyMetaObjectHandler();
    }
​
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setMetaObjectHandler(myMetaObjectHandler);
        return sessionFactory.getObject();
    }
​
    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

确保将com.example.myapp.mapper替换为你的Mapper接口所在的包路径。

5. 创建Mapper接口

在指定的包路径下创建Mapper接口,用于定义数据库操作的方法。例如:

@Repository
public interface UserMapper {
​
    User getUserById(Long id);
​
    void createUser(User user);
​
    void updateUser(User user);
​
    void deleteUser(Long id);
}

6. 配置自动填充字段

在实体类中定义创建时间、更新时间和租户字段,并使用MyBatis的注解进行配置。例如:

@Data
public class User {
​
    private Long id;
​
    private String name;
​
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
​
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
​
    // 租户字段
    @TableField(fill = FieldFill.INSERT)
    private String tenantId;
}

在上述示例中,@TableField注解的fill属性用于指定字段填充的策略,FieldFill.INSERT表示插入时填充,FieldFill.INSERT_UPDATE表示插入和更新时都填充。

7. 完成配置

根据上述步骤完成配置后,你就可以在Spring Boot项目中使用MyBatis进行数据库操作了。可以在Service中注入对应的Mapper,进行数据库操作。