春:H2的数据库持久

问题描述:

我application.properties:春:H2的数据库持久

spring.datasource.driverClassName=org.h2.Driver 
spring.datasource.url=jdbc:h2:./src/main/resources/asnDB;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 
spring.datasource.user=sa 
spring.datasource.password= 
spring.h2.console.enabled=true 
spring.jpa.hibernate.ddl-auto=create 

我有,当我开始春天项目装载的data.sql。

如何更改application.properties以使数据库持久?

现在它总是做一个新的。如果我将ddl.auto=create更改为ddl.auto=update,它也不起作用。我知道ddl.auto=create会覆盖我的数据库,但我不知道如何使其持久化。

在data.sql中有3个插入语句,当我运行该项目时,我的数据库中已经有3个插入。然后我通过我的用户界面插入一个新的并退出该项目。当我重新运行项目时,只有最初的3个插入。但应该有4个插入。

+0

如果当您退出项目数据库仅包含3个原插入,然后检查你通过UI做插入后的行被保存并且不rolledback 。 – artemisian

+0

所以我不需要更改我的代码中的任何内容? – SteveOhio

+0

当您停止应用程序而没有重新运行应用程序时,有多少行? – artemisian

你错过了自动重新连接功能

spring.datasource.url =的jdbc:H2:文件:〜/ TEST2; DB_CLOSE_ON_EXIT = FALSE; AUTO_RECONNECT = TRUE

使得例如工作原理:

spring.datasource.url=jdbc:h2:file:~/test2;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE 
spring.datasource.username=admin 
spring.datasource.password=password 
spring.datasource.driver-class-name=org.h2.Driver 
#spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=update 

持久性来源于财产spring.jpa.hibernate.ddl,汽车更新,而不是被创建