Você pode executar o servidor da web H2 em seu aplicativo que acessará o mesmo banco de dados na memória. Você também pode acessar o H2 em execução no modo de servidor usando qualquer cliente JDBC genérico como SquirrelSQL .
ATUALIZAR:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Agora você pode se conectar ao seu banco de dados via jdbc:h2:mem:foo_db
URL dentro do mesmo processo ou navegar no foo_db
banco de dados usando localhost:8082
. Lembre-se de fechar os dois servidores. Veja também: O banco de dados H2 em modo de memória não pode ser acessado pelo Console .
Você também pode 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>
BTW, você só deve depender de asserções e não da exibição manual do conteúdo do banco de dados. Use isso apenas para solução de problemas.
NB, se você usar o framework de teste Spring, você não verá as alterações feitas por uma transação em execução e esta transação será revertida imediatamente após o teste.