gpt4 book ai didi

hsqldb - 查看H2或HSQLDB内存数据库的内容

转载 作者:行者123 更新时间:2023-12-03 05:09:59 26 4
gpt4 key购买 nike

有没有办法浏览H2或HSQLDB内存数据库的内容进行查看?例如,在使用 Hibernate 进行调试 session 期间,以检查刷新何时执行;或者确保实例化数据库的脚本给出预期的结果。

是否存在可以嵌入代码中的插件或库以实现此目的?

请提及您正在谈论的是哪一个(H2 或 HSQLDB),以防您对其中一个有特定的答案。

最佳答案

您可以运行 H2 web server在您的应用程序中将访问相同的内存数据库。您还可以使用任何通用 JDBC 客户端(如 SquirrelSQL)访问在服务器模式下运行的 H2。 .

更新:

Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();

现在,您可以在同一进程中通过 jdbc:h2:mem:foo_db URL 连接到数据库,或使用 localhost:8082< 浏览 foo_db 数据库。请记住关闭两台服务器。另请参阅:H2 database in memory mode cannot be accessed by Console .

您还可以使用 Spring:

<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop" depends-on="h2WebServer">
<constructor-arg value="-tcp,-tcpAllowOthers,true,-tcpPort,9092"/>
</bean>
<bean id="h2WebServer" class="org.h2.tools.Server" factory-method="createWebServer" init-method="start" destroy-method="stop">
<constructor-arg value="-web,-webAllowOthers,true,-webPort,8082"/>
</bean>

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" depends-on="h2Server">
<property name="driverClass" value="org.h2.Driver"/>
<property name="jdbcUrl" value="jdbc:h2:mem:foo_db"/>
</bean>

顺便说一句,您应该只依赖于断言,而不是手动查看数据库内容。仅将此用于故障排除。

注意如果您使用 Spring 测试框架,您将不会看到正在运行的事务所做的更改,并且该事务将在测试后立即回滚。

关于hsqldb - 查看H2或HSQLDB内存数据库的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7309359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com