spring boot 项目启动初始化sql

1.在项目的resources下创建sql文件

2. 配置application.yml或者application.properties

3. sql初始化执行类

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.datasource.init.DataSourceInitializer;
import org.springframework.jdbc.datasource.init.DatabasePopulator;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import javax.sql.DataSource;

/**
 * @author hdx
 * @version 1.0.0
 * @ClassName BatchTaskDataSourceInitializer.java
 * @Description 执行sql文件
 * @createTime 2022年05月16日 09:28:00
 */
@Slf4j
@Configuration
public class BatchDataSourceInitializer {
    /**
     * 构建Resource对象
     */
    @Value("${spring.sql.createsql}")
    private Resource createsql;


    /**
     * 自定义Bean实现业务的特殊需求
     * @param dataSource
     * @return
     */
    @Bean
    public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
        try {
            final DataSourceInitializer initializer = new DataSourceInitializer();
            // 设置数据源
            initializer.setDataSource(dataSource);
            initializer.setDatabasePopulator(databasePopulator());
            log.info("sql文件执行成功");
            return initializer;
        } catch (Exception e) {
            log.info("sql文件执行失败:", e);
        }
        return null;
    }

    private DatabasePopulator databasePopulator() {
        final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
        populator.addScripts(createsql);
        return populator;
    }
}

4.启动测试

        执行成功,去数据库看下表结构。

        如果运行不行成功,请留言咨询

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值