Εμφάνιση αναρτήσεων με ετικέτα SpringBoot. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα SpringBoot. Εμφάνιση όλων των αναρτήσεων

Σάββατο 17 Οκτωβρίου 2020

Populate database on startup with Spring DataSourceInitializer









Populate database with hardcoded data, when Spring application starts up
















1. Create data.sql script with your data

  • src/main/resources/script/data.sql :



  • Example data.sql script data:

insert into activity_type values (1, 'GYM desc', 'GYM'), (2, 'CAR desc', 'CAR'), (3, 'BASKET desc', 'BASKET'), (4, 'HOUSE desc', 'HOUSE'); insert into activity values (1, 'STRENGTH', 'UpperChest_S', 1), (2, 'HYPERTROPHY', 'PullOverBack_H', 1), (3, 'GAS', 'GAS_MONTHLY', 4), (4, 'GAS', 'GAS_MAINTENANCE', 4), (5, 'CAR_PARTS', 'NewTires', 2), (6, 'CAR_CASUAL', 'Petrol', 2); insert into proj2.day_activity values ('1', NULL, '2020-03-04', '4', '60', '5', '4', '1', '1'), ('2', NULL, '2020-03-04', '9', '20', '8', '3', '2', '1'), ('3', NULL, '2020-03-05', '5', '65', '4', '4', '1', '1'), ('4', NULL, '2020-03-05', '10', '20', '7', '3', '2', '1'), ('5', '34', '2020-06-05', NULL, NULL, NULL, NULL, '3', '4'), ('6', '556', '2020-06-05', NULL, NULL, NULL, NULL, '4', '4'), ('7', '231', '2020-06-05', NULL, NULL, NULL, NULL, '5', '2'), ('8', '14', '2020-06-05', NULL, NULL, NULL, NULL, '6', '2'), ('9', NULL, '2020-03-06', '4', '70', '4', '4', '1', '1');


2. Application.yml


spring: datasource: url: jdbc:mysql://localhost:3306/yourDb?useSSL=false username: root password: yourpass driver-class-name: com.mysql.jdbc.Driver initialization-mode: never



3. Database @Configuration file


@Configuration @EnableJpaRepositories("com.yourproj.repository") @EnableTransactionManagement public class DatabaseConfiguration { @Autowired DataSource dataSource; public DatabaseConfiguration(Environment env) { this.env = env; } @Bean public DataSourceInitializer dataSourceInitializer() { ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(); resourceDatabasePopulator.addScript(new ClassPathResource("/script/data.sql")); DataSourceInitializer dataSourceInitializer = new DataSourceInitializer(); dataSourceInitializer.setDataSource(dataSource); dataSourceInitializer.setDatabasePopulator(resourceDatabasePopulator); return dataSourceInitializer; } }