首先我知道这里有一些问题有类似的标题,但用例总是不同的。
我有一个桌面应用程序(Windows / Linux环境),用Java编写,带有Spring启动。被执行为.jar
我希望可以关闭并重新启动此应用程序,并且以前存储/使用的数据仍然可用。但要求是用户不需要单独安装数据库。我测试了Spring的嵌入式H2数据库功能,但每次重启应用程序时它都是空的。看来这个解决方案只适用于运行时?
我想到的唯一解决方案是使用对象写入并将数据存储在XML中,并在重新启动后重新读取它。但许多人说这不是存储数据的专业方式。
那么除了XML之外还有其他任何解决方案吗?如果没有安装外部数据库,这是不可能的?
非常感谢
答案 0 :(得分:0)
你可以使用带有file
的H2数据库将数据保存到文件中,这样就不需要单独安装数据库,看看不同的H2配置{{ 3}}
application.propertiles将如下所示:
spring.datasource.url=jdbc:h2:file:~/data
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=org.h2.Driver
此外,如here所述,您可以使用DB_CLOSE_ON_EXIT=FALSE
阻止数据库在VM存在时关闭。所以,db url将是:
spring.datasource.url=jdbc:h2:file:~/data;DB_CLOSE_ON_EXIT=FALSE