È possibile eseguire H2 web server all'interno dell'applicazione che accederà allo stesso database in memoria. È anche possibile accedere a H2 in esecuzione in modalità server utilizzando qualsiasi client JDBC generico come SquirrelSQL.
UPDATE:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Ora è possibile connettersi al database tramite jdbc:h2:mem:foo_db
URL all'interno dello stesso processo o sfogliare il nostro catalogo foo_db
utilizzando localhost:8082
. Ricordarsi di chiudere entrambi i server. Vedi anche: H2 database in memory mode cannot be accessed by Console.
È inoltre possibile utilizzare Primavera:
<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 si dovrebbe dipendere solo su affermazioni e non sui manuali sbirciare il contenuto del database. Utilizzare questo solo per la risoluzione dei problemi.
N.B. se si utilizza il framework Spring test, non si vedranno le modifiche apportate da una transazione in esecuzione e questa transazione verrà annullata immediatamente dopo il test.
fonte
2011-09-05 14:27:30
ho ottenuto l'errore che la "vera" è un'opzione valida. Did-webAllowOthers usato per prendere parametro? Con l'ultimo codice H2, non richiede alcun parametro. Guarda il metodo "main" qui: http://www.h2database.com/javadoc/org/h2/tools/Server.html – hshib
Come menzionato da hman, l'ultima versione non accetta il parametro "true" quindi basta rimuoverlo: '< constructor-arg value = "- web, -webAllowOthers, -webPort, 8082" /> ' –
Le nuove versioni seguono la convenzione argomento separato di ' Server.createTcpServer ("- tcpPort", "9092", "-tcpAllowOthers") ' ' Server.createWebServer ("- webPort", "8082", "-tcpAllowOthers") ' – Jor