동일한 인 메모리 데이터베이스에 액세스 할 애플리케이션 내에서 H2 웹 서버를 실행할 수 있습니다 . SquirrelSQL 과 같은 일반 JDBC 클라이언트를 사용하여 서버 모드에서 실행중인 H2에 액세스 할 수도 있습니다 .
최신 정보:
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>
BTW 데이터베이스 콘텐츠를 수동으로 들여다 보는 것이 아니라 단언에만 의존해야합니다. 문제 해결을 위해서만 사용하십시오.
NB Spring 테스트 프레임 워크를 사용하는 경우 실행중인 트랜잭션에 의해 변경된 사항을 볼 수 없으며이 트랜잭션은 테스트 직후 롤백됩니다.