java - H2数据库存储机制

标签 java database junit h2 in-memory-database

我在 junit 测试中使用了 H2 数据库,它运行良好。 但是,我对它的持久性属性几乎没有疑问:

  1. 当我关闭笔记本电脑时会发生什么?如果重新启动,表和数据是否会丢失?如果是,是否可以恢复?
  2. H2 是否使用事务日志将数据持久保存到磁盘?我可以看到在我的用户目录中创建的数据库文件。我可以使用此文件将数据复制到另一个系统吗?
  3. 是否可以使用 H2 配置持久化/存储机制?

最佳答案

参见 H2 Features页。

关于您的问题的简要总结:

  • H2 可以配置为使用 in-memory或基于磁盘的持久性。根据您的选择,它会或不会在断电后继续存在。
  • 事务支持是READ COMMITTED
  • 您可以复制并重复使用该文件,我不会将其称为传统意义上的数据复制。但是如果你有两个 H2 数据库,其中一个会宕机 f.ex。您可以从另一个复制文件并启动它。

同时检查 High Availability fpr H2 Database项目。

关于java - H2数据库存储机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610635/

相关文章:

java - 等待或 sleep 什么的

database - Wordpress 数据库迁移

unit-testing - Outlook 收件人测试 : always succeed/always bounce

通过命令行使用 Junit 和 Jacoco,java 覆盖率为 0%

java - junit 无法捕获通用异常

java - Android 将一个 fragment 导航到另一个 fragment 可以正常工作,但是看不到其他 fragment 的背景

java - 中缀到后缀程序不工作

php - 选择时间间隔 MySQL

database - 读取未提交的 mvcc 数据库

java - 在编码之前动态隐藏一些字段(java 到 json)