springboot项目启动初始化数据库表操作

282 阅读1分钟

项目启动的时候需要对数据库表进行一些操作,我们可以定义一个sql脚本把执行动作放入,然后在项目里加入下面这个配置类,前提是项目已经配置好了数据源

/**
 *  自定义初始化数据源
 * @Author: irving-shi
 * @Date: 2021/10/19
 *
 */

@Slf4j
@Configuration
public class CustomizeDataSourceInitializer {

    @Value("classpath:sql/update_1019.sql")
    private Resource functionScriptFarms;

    @Bean
    public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
        final DataSourceInitializer initializer = new DataSourceInitializer();
        // 设置数据源
        initializer.setDataSource(dataSource);
        log.info("新版本对数据库表进行更新");
        initializer.setDatabasePopulator(databasePopulator());
        return initializer;
    }

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