Ви можете запустити веб-сервер 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>
До речі, ви повинні залежати лише від тверджень, а не від заглядання вмісту бази даних вручну. Використовуйте це лише для усунення несправностей.
Зверніть увагу: якщо ви використовуєте фреймворк Spring test, ви не побачите змін, внесених запущеною транзакцією, і ця транзакція буде відкочена відразу після тесту.