我正在使用H2 database作为简单的Web应用程序。
当我尝试通过H2控制台Web浏览器查看数据时,它似乎不会使用数据库中的最新数据进行更新。
例如:
我使用我的网络应用程序向表中添加了一条新记录,当我从表中添加select *
时,我添加了记录,但它没有显示新记录。
当我通过浏览器连接到H2控制台时,我有以下登录设置:
已保存的设置:通用H2(嵌入式)
设置名称:通用H2(嵌入式)
驱动程序类:org.h2.Driver
JDBC URL:jdbc:h2:file:/ Develops / Databases / snowy_db; FILE_LOCK = NO
关于如何使用H2控制台浏览器从数据库访问最新数据的任何想法?
提前致谢。
修改
添加:我可以在我的网络应用中看到新记录,但在使用H2控制台浏览器时却看不到。
答案 0 :(得分:2)
我猜您的问题是FILE_LOCK=NO
选项。 documentation说明了这一点:
由应用程序来保护数据库文件。如果不这样做将导致数据库损坏。 [...]请注意,这是不安全的,因为另一个进程能够打开同一个数据库,可能导致数据损坏
我强烈建议您使用更复杂的H2模式,例如 automatic mixed mode 。在此模式下,连接到给定数据库的第一个应用程序将打开一个套接字服务器,并且每次从其他应用程序连接到此数据库的后续尝试都使用套接字连接而不是原始文件系统访问。
如果您对此感到不舒服,只需将H2作为独立服务器单独运行或在Seam应用程序中运行。然后更改JDBC URL,以便通过localhost
和TCP连接进行连接。