jpl*_*ain 83 h2 hsqldb in-memory-database
有没有办法浏览H2或HSQLDB内存数据库的内容以供查看?例如,在与Hibernate的调试会话期间,为了检查执行刷新的时间; 或者确保实例化DB的脚本给出了预期的结果.
是否存在可以嵌入代码的插件或库,以便允许这样做?
如果你有一个特定于其中一个的答案,请提及你正在谈论的那个(H2或HSQLDB).
Tom*_*icz 55
您可以在应用程序中运行H2 Web服务器,该服务器将访问相同的内存数据库.您还可以使用任何通用JDBC客户端(如SquirrelSQL)访问在服务器模式下运行的H2 .
更新:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Run Code Online (Sandbox Code Playgroud)
现在,您可以jdbc:h2:mem:foo_db在同一进程中通过URL 连接到数据库,也可以foo_db使用浏览数据库localhost:8082.记得关闭两台服务器.另请参阅:控制台无法访问内存模式下的H2数据库.
你也可以使用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>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你应该只依赖于断言而不是手动查看数据库内容.仅用于故障排除.
注意,如果您使用Spring测试框架,您将看不到正在运行的事务所做的更改,并且此事务将在测试后立即回滚.
Tho*_*ler 29
对于H2,如果您有数据库连接对象,则可以在调试会话期间在代码中启动Web服务器.您可以将此行添加到代码中,或者作为"监视表达式"(动态地)添加:
org.h2.tools.Server.startWebServer(conn);
Run Code Online (Sandbox Code Playgroud)
服务器工具将在本地启动Web浏览器,允许您访问数据库.
在H2,对我有用的是:
我编码,启动服务器像:
server = Server.createTcpServer().start();
Run Code Online (Sandbox Code Playgroud)
这将在localhost端口9092 上启动服务器.
然后,在代码中,在以下JDBC URL上建立数据库连接:
jdbc:h2:tcp://localhost:9092/mem:test;DB_CLOSE_DELAY=-1;MODE=MySQL
Run Code Online (Sandbox Code Playgroud)
在调试时,作为检查数据库的客户端我使用H2提供的,这已经足够好了,启动它只需要分别启动以下java main
org.h2.tools.Console
Run Code Online (Sandbox Code Playgroud)
这将启动带有8082应用程序的Web服务器,启动浏览器 localhost:8082
然后您可以输入以前的URL以查看数据库
| 归档时间: |
|
| 查看次数: |
97223 次 |
| 最近记录: |