我在 junit 测试中使用了 H2 数据库,它运行良好。 但是,我对它的持久性属性几乎没有疑问:
- 当我关闭笔记本电脑时会发生什么?如果重新启动,表和数据是否会丢失?如果是,是否可以恢复?
- H2 是否使用事务日志将数据持久保存到磁盘?我可以看到在我的用户目录中创建的数据库文件。我可以使用此文件将数据复制到另一个系统吗?
- 是否可以使用 H2 配置持久化/存储机制?
最佳答案
参见 H2 Features页。
关于您的问题的简要总结:
- H2 可以配置为使用 in-memory或基于磁盘的持久性。根据您的选择,它会或不会在断电后继续存在。
- 事务支持是
READ COMMITTED
。 - 您可以复制并重复使用该文件,我不会将其称为传统意义上的数据复制。但是如果你有两个 H2 数据库,其中一个会宕机 f.ex。您可以从另一个复制文件并启动它。
关于java - H2数据库存储机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610635/