SpringBoot整合MybatisPlus启动自动初始化DDL脚本实现

这篇文章介绍了如何在SpringBoot项目中利用MybatisPlus的DdlApplicationRunner和SimpleDdl处理器,通过`a.sql`脚本进行数据库初始化操作。配置了自动加载DDL列表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是MybatisPlus提供的一个处理器,在SpringBoot启动做的初始化操作,可以根据给定的sql脚本执行

package luck.spring.cloud.pay.config;

import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.autoconfigure.DdlApplicationRunner;
import com.baomidou.mybatisplus.extension.ddl.IDdl;
import com.baomidou.mybatisplus.extension.ddl.SimpleDdl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Configuration
public class DDL extends SimpleDdl {
    @Override
    public List<String> getSqlFiles() {
        return CollUtil.newArrayList("a.sql");
    }

    @Bean
    public DdlApplicationRunner ddlApplicationRunner(@Autowired(required = false) List<IDdl> ddlList) {
        return new DdlApplicationRunner(ddlList);
    }
}

Spring Boot项目中整合MyBatisPlus并连接多个数据源,通常需要以下几个步骤: 1. 添加依赖:在项目的pom.xml或gradle.build文件中,分别添加MyBatisPlusSpring Data JPA的依赖,以及对应的数据源驱动,比如MySQL: ```xml <!-- MyBatisPlus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </dependency> <!-- 数据源依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- 适用于MySQL --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 2. 配置数据源:在application.properties或application.yml文件中,为每个数据源设置独立的属性,比如db0、db1,使用`spring.datasource`前缀: ```yaml spring: datasource: db0: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db0?serverTimezone=UTC username: user0 password: password0 db1: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC username: user1 password: password1 ``` 3. 定义数据源切换策略:使用`@Profile`注解标记不同的数据源配置,然后在代码中通过`spring.profiles.active`系统环境变量或者`spring.jpa.hibernate.ddl-auto`属性切换数据源。例如: ```java @Configuration @Profile("db0") public DataSourceConfig db0DataSource() { return DataSourceBuilder.create().url(...).username(...).password(...).build(); } @Configuration @Profile("db1") public DataSourceConfig db1DataSource() { return DataSourceBuilder.create().url(...).username(...).password(...).build(); } ``` 4. 自动扫描Model层:为了使MyBatisPlus能够自动扫描实体类,可以在`mybatis-plus-sharding`配置下指定包路径: ```yaml mybatis-plus: global-config: db-configs: - type: SHarding sharding-rule: tables: table_name1,table_name2 logic-table: logic_table_name data-source-names: db0,db1 mapper-scan-base-packages: your.entity.package ``` 5. 使用数据源:在Service或者Repository中,注入对应的数据源,通过JpaRepository或自定义Mapper接口进行操作。在查询时,可以利用MyBatisPlus的`@GlobalTransactional`注解,它会自动选择当前活跃的数据源。 注意:在实际应用中,还可以考虑使用第三方库如Spring Cloud Gateway来管理数据源的路由,或者使用AOP代理技术动态切换数据源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值