1

我将H2 数据库用于一个简单的 Web 应用程序。

当我尝试通过 H2 控制台 Web 浏览器查看数据时,它似乎没有使用数据库中的最新数据进行更新。

例如:

我使用我的网络应用程序向表中添加了一条新记录,当我select *从表中添加记录时,它不显示新记录。

当我通过浏览器连接到 H2 控制台时,我有以下登录设置:

保存的设置:通用 H2(嵌入式)

设置名称:Generic H2(嵌入式)

驱动类:org.h2.Driver

JDBC URL:jdbc:h2:file:/Develops/Databases/snowy_db;FILE_LOCK=NO

关于如何使用 H2 控制台浏览器访问数据库中的最新数据的任何想法?

提前致谢。

编辑

补充一点:我可以在我的网络应用程序中看到新记录,但在我使用 H2 控制台浏览器时看不到。

4

1 回答 1

2

我想你的问题是FILE_LOCK=NO选项。该文档指出:

由应用程序来保护数据库文件。否则将导致数据库损坏。[...] 请注意,这是不安全的,因为另一个进程能够打开同一个数据库,可能会导致数据损坏

我强烈建议您使用更复杂的 H2 模式,例如自动混合模式。在这种模式下,连接到给定数据库的第一个应用程序会打开一个套接字服务器,并且随后从其他应用程序连接到该数据库的每次尝试都使用套接字连接而不是原始文件系统访问。

If you don't feel comfortable with that, just run H2 as a standalone server separately or inside your Seam application. Then change your JDBC URL so that it connects via localhost and TCP connection.

于 2011-02-16T18:00:05.543 回答