some time our application have initial data or sometimes needs to run sql script to create tables or other database object when application init.

 

in this code when can do that very simple and easy by spring boot 

 

@Inject

private DataSource dataSource;

 

@Value("classpath:schema.sql")

 private Resource schemaScript;


@Bean

public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {

         final DataSourceInitializer initializer = new DataSourceInitializer();

        initializer.setDataSource(dataSource);

        initializer.setDatabasePopulator(databasePopulator());

        returninitializer;

}

private DatabasePopulator databasePopulator() {

        final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();

        populator.addScript(schemaScript);

        returnpopulator;