我设置Spring-boot来使用H2内存数据库 application.properties文件位于/ config目录
中spring.datasource.url=jdbc:h2:mem:mydb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.path=/myconsole
spring.h2.console.enabled=true
spring.datasource.initialize=true
spring.datasource.schema=schema.sql
spring.datasource.data=data.sql
此文件已处理,控制台显示在/ myconsole 但是不处理schema.sql和data.sql而且db是emplty。 我将schema.sql和data.sql文件放在/ config和/ src / main / resouces
下SQL语言指令是正确的,我可以使用控制台输入填充表。
另一个奇怪的事情是 即使我将db命名为 spring.datasource.url = JDBC:H2:MEM:MYDB spring控制台加载另一个数据库testdb o.s.j.d.e.EmbeddedDatabaseFactory ---启动嵌入式数据库:url =' jdbc:h2:mem:testdb; DB_CLOSE_DELAY = -1; DB_CLOSE_ON_EXIT = false',username =' sa'
如何正确加载H2数据库? 提前谢谢....
答案 0 :(得分:8)
解决了这个问题。
spring boot应用程序需要它的ownd jdbc依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
我所拥有的非启动依赖性并不足够:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
没有“spring-boot-starter-jdbc”依赖项 文件“application.properties”中的“spring.datasource.url”设置 没有处理。 该文件实际上已处理,但不是jdbc设置。 Spring启动会在内存中创建自己的testdb,从而破坏数据 关闭申请后。