我使用此application.properties文件
创建了一个spring应用程序spring.datasource.schema=schema-h2.sql
spring.datasource.url=jdbc:h2:file:JMeterMaid
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
#Hibernate Configuration:
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update
entitymanager.packages.to.scan=com.spr.model
和这个schema-h2.sql文件
CREATE TABLE IF NOT EXISTS RunEntity (ID INTEGER IDENTITY,TestNumber INTEGER NOT NULL, TestName varchar(50) NOT NULL, ENVIRONMENT VARCHAR(50) NOT NULL, Source VARCHAR(50), Date TIMESTAMP, RESULTFILES BLOB);
我认为CREATE TABLE IF NOT EXISTS这一行会使程序在应用程序停止运行并重新启动后能够从数据库中查找信息。但是,一旦应用程序再次运行,就无法找到任何信息。如何在多次运行应用程序期间保存信息并访问它?
答案 0 :(得分:0)
您在数据库网址中使用了相对路径:
jdbc:h2:file:JMeterMaid
(相对于当前工作目录)在将来的H2版本中将不再支持此功能。这意味着,数据库文件存储在当前工作目录中。当您在另一个目录中启动程序时,会在那里创建一个新数据库。
要解决此问题,请使用绝对路径或相对于当前用户主目录的路径,例如:
jdbc:h2:file:/data/JMeterMaid
(绝对路径)jdbc:h2:file:~/data/JMeterMaid
(相对于当前用户主目录)