Vous pouvez exécuter le serveur Web H2 dans votre application qui accédera à la même base de données en mémoire. Vous pouvez également accéder au H2 fonctionnant en mode serveur en utilisant n'importe quel client JDBC générique comme SquirrelSQL .
METTRE À JOUR:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Vous pouvez maintenant vous connecter à votre base de données via une jdbc:h2:mem:foo_db
URL dans le même processus ou parcourir la foo_db
base de données en utilisant localhost:8082
. N'oubliez pas de fermer les deux serveurs. Voir aussi: La base de données H2 en mode mémoire n'est pas accessible par la console .
Vous pouvez également utiliser 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, vous ne devriez dépendre que des assertions et non de la lecture manuelle du contenu de la base de données. Utilisez ceci uniquement pour le dépannage.
NB si vous utilisez le framework de test Spring, vous ne verrez pas les modifications apportées par une transaction en cours et cette transaction sera annulée immédiatement après le test.