|
@@ -7,8 +7,12 @@ import javax.sql.DataSource;
|
|
import org.h2.Driver;
|
|
import org.h2.Driver;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
+import org.springframework.core.io.ClassPathResource;
|
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|
import org.springframework.jdbc.datasource.SimpleDriverDataSource;
|
|
import org.springframework.jdbc.datasource.SimpleDriverDataSource;
|
|
|
|
+import org.springframework.jdbc.datasource.init.DataSourceInitializer;
|
|
|
|
+import org.springframework.jdbc.datasource.init.DatabasePopulator;
|
|
|
|
+import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
|
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -24,7 +28,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
public class DBConfig {
|
|
public class DBConfig {
|
|
|
|
|
|
@Bean
|
|
@Bean
|
|
- public DataSource dataSource() throws SQLException {
|
|
|
|
|
|
+ public DataSource dataSource(){
|
|
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
|
|
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
|
|
dataSource.setDriver(new Driver());
|
|
dataSource.setDriver(new Driver());
|
|
dataSource.setUrl("jdbc:h2:mem:test;MODE=mysql;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
|
|
dataSource.setUrl("jdbc:h2:mem:test;MODE=mysql;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
|
|
@@ -37,5 +41,27 @@ public class DBConfig {
|
|
public DataSourceTransactionManager transactionManager(DataSource ds) {
|
|
public DataSourceTransactionManager transactionManager(DataSource ds) {
|
|
return new DataSourceTransactionManager(ds);
|
|
return new DataSourceTransactionManager(ds);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ @Bean
|
|
|
|
+ public DataSourceInitializer dataSourceInitializer(DataSource dataSource) {
|
|
|
|
+ final DataSourceInitializer initializer = new DataSourceInitializer();
|
|
|
|
+ initializer.setDataSource(dataSource);
|
|
|
|
+ initializer.setDatabasePopulator(databasePopulator());
|
|
|
|
+ initializer.setEnabled(true);
|
|
|
|
+ return initializer;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private DatabasePopulator databasePopulator() {
|
|
|
|
+ ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator();
|
|
|
|
+ resourceDatabasePopulator.setContinueOnError(false);
|
|
|
|
+ resourceDatabasePopulator.addScripts(
|
|
|
|
+ //todo 这里由你们来进化一下.
|
|
|
|
+ new ClassPathResource("/h2/student.ddl.sql"),
|
|
|
|
+ new ClassPathResource("/h2/student.insert.sql"),
|
|
|
|
+ new ClassPathResource("/h2/user.ddl.sql"),
|
|
|
|
+ new ClassPathResource("/h2/user.insert.sql")
|
|
|
|
+ );
|
|
|
|
+ return resourceDatabasePopulator;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|