我刚开始使用Spring引导,我想在数据库创建的时候添加一些sql,比如种子数据。
@Value("classpath:com/foo/sql/db-test-data.sql")
private Resource dataScript;
@Bean
public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
final DataSourceInitializer initializer = new DataSourceInitializer();
initializer.setDataSource(dataSource);
initializer.setDatabasePopulator(databasePopulator());
return initializer;
}
private DatabasePopulator databasePopulator() {
final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
populator.addScript(dataScript);
return populator;
}
props.put("hibernate.query.substitutions", "true 1, false 0");
props.put("hibernate.hbm2ddl.auto", "create-drop");
props.put("hibernate.show_sql", "false");
props.put("hibernate.format_sql", "true");我已经执行了这个action.But,它没有在spring boot.Can上工作,没有人帮助我。
发布于 2015-10-14 11:41:34
您可以利用Spring数据库初始化功能。最简单的方法是在类路径的根目录中放置一个"data.sql“文件。所以你只需要:
Spring将自动拾取文件,并在启动时使用它初始化数据库。
如果需要自定义文件名、位置等,可以检查文档。
发布于 2017-11-28 04:35:37
有时候,spring-boot比它所起的作用更大;IMHO尤其适用于web应用程序。
要解决这个问题,您可以做的是重命名您定义的bean。
@Bean("springBootPleaseStopTellingMeHowYouThinkDataSourceInitializer")
public DataSourceInitializer dataSourceInitializer(DataSource dataSource) {
// build it.
}现在,关闭查找data.sql in application.properties的内置位
spring.datasource.initialize=false在那里,现在引导被引导了。
https://stackoverflow.com/questions/33123771
复制相似问题