Java 桌面应用程序-如何存储多个引导的数据

Java 桌面应用程序-如何存储多个引导的数据,java,database,spring,Java,Database,Spring,首先,我知道这里有些问题的标题相似,但用例总是不同的 我有一个桌面应用程序(Windows/Linux环境),是用Java编写的Spring boot。作为.jar执行 我希望此应用程序可以关闭并重新启动,并且以前存储/使用的数据仍然可用。但要求是用户不需要单独安装数据库。我测试了Spring的嵌入式H2数据库功能,但每次重新启动应用程序时,它都是空的。似乎此解决方案仅适用于运行时 我想出的唯一解决方案是使用objectwrite将数据存储在XML中,并在重新启动后重新读取。但许多人说,这不是存

首先,我知道这里有些问题的标题相似,但用例总是不同的

我有一个桌面应用程序(Windows/Linux环境),是用Java编写的Spring boot。作为.jar执行

我希望此应用程序可以关闭并重新启动,并且以前存储/使用的数据仍然可用。但要求是用户不需要单独安装数据库。我测试了Spring的嵌入式H2数据库功能,但每次重新启动应用程序时,它都是空的。似乎此解决方案仅适用于运行时

我想出的唯一解决方案是使用objectwrite将数据存储在XML中,并在重新启动后重新读取。但许多人说,这不是存储数据的专业方式

那么,除了XML之外还有什么解决方案吗?或者说,如果不安装外部数据库,这是不可能的


非常感谢

您可以将H2数据库与
文件一起使用
将数据保存到文件中,这样就不需要单独安装数据库,请查看不同的H2配置

application.Properties将如下所示:

spring.datasource.url=jdbc:h2:file:~/data
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=org.h2.Driver
此外,您还可以使用
DB\u CLOSE\u ON\u EXIT=FALSE
在VM存在时停止关闭数据库,如前所述。因此,db url应该是:

spring.datasource.url=jdbc:h2:file:~/data;DB_CLOSE_ON_EXIT=FALSE

非常感谢您提供透明完整的解决方案!