我设置了依赖项和app.properties
pring.h2.console.enabled=true
spring.h2.console.path=/h2
#Spring data JPA properties
spring.datasource.url=jdbc:h2:mem:testdb:MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.hibernate.format_sql=true
hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.thymeleaf.cache = false
在我的资源目录中我有两个文件table-script.sql用于创建表 和data-scripts.sql转储插入语句,但我该怎么做才能让我的控制台上运行这个数据库,帮助大家谢谢,这是春季启动我没需要的其他配置文件或数据源bean
答案 0 :(得分:0)
@Profile("test")
@Configuration
@PropertySource(value = {"classpath:test.properties"})
static class ConfigTest {
@Autowired
private Environment env;
@Bean(name = "dataSource")
public DataSource dataSourceTest() {
return new EmbeddedDatabaseBuilder()
.generateUniqueName(true)
.setType(EmbeddedDatabaseType.H2)
.setScriptEncoding("UTF-8")
.addScripts("schema.sql", "data.sql")
.build();
}
@Bean
public JpaVendorAdapter jpaVendorAdapterTest() {
HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
adapter.setShowSql(false);
adapter.setDatabase(Database.H2);
adapter.setDatabasePlatform("org.hibernate.dialect.H2Dialect");
adapter.setGenerateDdl(true);
return adapter;
}
}

这是我配置我的方式,因为Inmemory数据库名称是自动生成的,我也无法提供属性文件。我不得不让Java和Spring自己做这件事
表script.sql
CREATE TABLE IF NOT EXISTS table1 (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(255) NOT NULL,
field_1 TEXT,
field_2 TEXT,
field_3 INT NOT NULL
);
CREATE TABLE IF NOT EXISTS table2 (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(255) NOT NULL,
field_1 TEXT,
field_2 TEXT,
field_3 INT NOT NULL
);

以下是示例文件夹结构
src
|--- main
|--- java
|--- com.project.root # classpath: <- genarally pointing here
|--- confing
|--- AppConfig.java #Above file
|--- resources
|--- table-script.sql
&#13;
这就是它的一切。休息由Spring处理。它在创建随机数据库时运行该文件。