Bạn có thể chạy máy chủ web H2 trong ứng dụng của mình để truy cập cùng một cơ sở dữ liệu trong bộ nhớ. Bạn cũng có thể truy cập H2 đang chạy ở chế độ máy chủ bằng cách sử dụng bất kỳ ứng dụng JDBC chung nào như SquirrelSQL .
CẬP NHẬT:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Giờ đây, bạn có thể kết nối với cơ sở dữ liệu của mình qua jdbc:h2:mem:foo_db
URL trong cùng một quy trình hoặc duyệt foo_db
cơ sở dữ liệu bằng cách sử dụng localhost:8082
. Hãy nhớ đóng cả hai máy chủ. Xem thêm: Cơ sở dữ liệu H2 ở chế độ bộ nhớ không thể truy cập bằng Console .
Bạn cũng có thể sử dụng 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 bạn chỉ nên phụ thuộc vào các xác nhận chứ không phụ thuộc vào việc xem trộm nội dung cơ sở dữ liệu theo cách thủ công. Chỉ sử dụng điều này để khắc phục sự cố.
NB nếu bạn sử dụng khung kiểm tra Spring, bạn sẽ không thấy các thay đổi được thực hiện bởi một giao dịch đang chạy và giao dịch này sẽ được khôi phục ngay sau khi kiểm tra.