Możesz uruchomić serwer WWW H2 w swojej aplikacji, który będzie miał dostęp do tej samej bazy danych w pamięci. Możesz również uzyskać dostęp do H2 działającego w trybie serwera za pomocą dowolnego ogólnego klienta JDBC, takiego jak SquirrelSQL .
AKTUALIZACJA:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Teraz możesz połączyć się z bazą danych za pomocą jdbc:h2:mem:foo_db
adresu URL w ramach tego samego procesu lub przeglądać foo_db
bazę danych za pomocą localhost:8082
. Pamiętaj, aby zamknąć oba serwery. Zobacz też: Baza danych H2 w trybie pamięci nie jest dostępna z konsoli .
Możesz także użyć 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, powinieneś polegać tylko na asercjach, a nie na ręcznym przeglądaniu zawartości bazy danych. Używaj tego tylko do rozwiązywania problemów.
Uwaga: jeśli korzystasz z Spring Test Framework, nie zobaczysz zmian wprowadzonych przez uruchomioną transakcję i ta transakcja zostanie wycofana natychmiast po teście.