Вы можете запустить веб-сервер H2 в своем приложении, которое будет обращаться к той же базе данных в памяти. Вы также можете получить доступ к H2, работающему в режиме сервера, с помощью любого универсального клиента JDBC, например SquirrelSQL .
ОБНОВИТЬ:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Теперь вы можете подключиться к своей базе данных через 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>
Кстати, вы должны полагаться только на утверждения, а не на ручной просмотр содержимого базы данных. Используйте это только для устранения неполадок.
NB, если вы используете платформу тестирования Spring, вы не увидите изменений, внесенных в выполняющуюся транзакцию, и эта транзакция будет отменена сразу после теста.