H2控制台-通过浏览器查看数据库显示旧数据

发布于 2024-10-17 20:15:06 字数 602 浏览 1 评论 0原文

我正在使用 H2 数据库 来构建一个简单的 Web 应用程序。

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

例如:

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

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

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

设置名称:通用 H2(嵌入式)

驱动程序类:org.h2.Driver

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

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

提前致谢。

编辑

只是添加:我可以在我的网络应用程序中看到新记录,但在使用 H2 控制台浏览器时却看不到。

I'm using H2 database for a simple web application.

When I try and view the data via the H2 console web browser, it doesn't seem to update with the latest data in the database.

For example:

I add a new record to a table using my web app and when I do a select * from the table I added the record to, it doesn't show the new record.

I have the following settings for the Login when I connect to H2 console via the browser:

Saved Settings: Generic H2 (Embedded)

Setting Name: Generic H2 (Embedded)

Driver Class: org.h2.Driver

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

Any ideas on how I go about accessing the latest data from the database using the H2 console browser?

Thanks in advance.

Edit

Just to add: I can see the new record in my web app but not when I use the H2 console browser.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一向肩并 2024-10-24 20:15:06

我猜你的问题是 FILE_LOCK=NO 选项。 文档对此进行了说明:

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

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

如果您对此感到不舒服,只需将 H2 作为独立服务器单独运行或在您的 Seam 应用程序中运行即可。然后更改您的 JDBC URL,以便它通过 localhost 和 TCP 连接进行连接。

I guess your problem is FILE_LOCK=NO option. The documentation states about it that:

it is up to the application to protect the database files. Failing to do so will result in a corrupted database. [...] Please note that this is unsafe as another process is able to open the same database, possibly leading to data corruption

I am strongly recommending you to use more sophisticated H2 mode like automatic mixed mode. In this mode the first application that connects to a given database opens a socket server and every subsequent attempt to connect to this database from other applications uses socket connection rather than raw file system access.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文