Puede ejecutar el servidor web H2 dentro de su aplicación que accederá a la misma base de datos en memoria. También puede acceder al H2 que se ejecuta en modo servidor utilizando cualquier cliente JDBC genérico como SquirrelSQL .
ACTUALIZAR:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Ahora puede conectarse a su base de datos a través de una jdbc:h2:mem:foo_db
URL dentro del mismo proceso o navegar por la foo_db
base de datos usando localhost:8082
. Recuerde cerrar ambos servidores. Consulte también: La consola no puede acceder a la base de datos H2 en modo memoria .
También puedes usar 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>
Por cierto, solo debe depender de las afirmaciones y no de la inspección manual del contenido de la base de datos. Use esto solo para solucionar problemas.
Nota: si usa el marco de prueba de Spring, no verá los cambios realizados por una transacción en ejecución y esta transacción se revertirá inmediatamente después de la prueba.