我在 Java 中使用以下代码创建并使用 H2 内存数据库(不写入存储)进行演示和快速测试:
Connection conn = DriverManager.getConnection( "jdbc:h2:mem:example_db" ) ;
这是第一次工作,但随后数据库似乎消失了,无法进行进一步的工作。随着时间的推移,如何使用相同的内存数据库?
我在 Java 中使用以下代码创建并使用 H2 内存数据库(不写入存储)进行演示和快速测试:
Connection conn = DriverManager.getConnection( "jdbc:h2:mem:example_db" ) ;
这是第一次工作,但随后数据库似乎消失了,无法进行进一步的工作。随着时间的推移,如何使用相同的内存数据库?
放
DB_CLOSE_DELAY=-1
默认情况下,H2 中的内存数据库在连接关闭后被丢弃。
要覆盖此默认行为,请设置
DB_CLOSE_DELAY
为负值。您可以这样做:JDBC 路径
要在连接关闭的情况下保持数据库存在,请在 JDBC 路径中添加一个元素。数据库将继续存在于内存中,直到您的应用程序退出。因此,您可以连续连接到同一个连续数据库。
提示:注意数据库名称和此元素之间的分号(不是冒号)。
如果要显式调用默认行为,请设置
0
. 在最后一个连接关闭后丢弃数据库之前的几秒钟内,传递一个正整数 ( >=1 )。此功能在手册最后一段的内存数据库部分中进行了介绍。
SQL 命令
此设置也可以在运行时通过
SET DB_CLOSE_DELAY
命令进行操作,传递一个整数。引用该文档: