Anda dapat menjalankan server web H2 dalam aplikasi Anda yang akan mengakses database dalam memori yang sama. Anda juga dapat mengakses H2 yang berjalan dalam mode server menggunakan klien JDBC generik seperti SquirrelSQL .
MEMPERBARUI:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Sekarang Anda dapat terhubung ke database Anda melalui jdbc:h2:mem:foo_db
URL dalam proses yang sama atau menelusuri foo_db
database menggunakan localhost:8082
. Ingatlah untuk menutup kedua server. Lihat juga: Database H2 dalam mode memori tidak dapat diakses oleh Konsol .
Anda juga bisa menggunakan 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 Anda hanya harus bergantung pada pernyataan dan bukan pada manual mengintip isi database. Gunakan ini hanya untuk pemecahan masalah.
NB jika Anda menggunakan kerangka pengujian Spring, Anda tidak akan melihat perubahan yang dibuat oleh transaksi yang sedang berjalan dan transaksi ini akan dibatalkan segera setelah pengujian.