आप अपने एप्लिकेशन के भीतर H2 वेब सर्वर चला सकते हैं जो उसी-इन-मेमोरी डेटाबेस तक पहुंच जाएगा। आप किसी भी सामान्य JDBC क्लाइंट जैसे कि SquirrelSQL का उपयोग करके सर्वर मोड में चल रहे 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
। दोनों सर्वरों को बंद करना याद रखें। यह भी देखें: स्मृति मोड में एच 2 डेटाबेस कंसोल द्वारा पहुँचा नहीं जा सकता ।
आप स्प्रिंग का उपयोग भी कर सकते हैं:
<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 यदि आप स्प्रिंग परीक्षण ढांचे का उपयोग करते हैं, तो आप एक चल रहे लेन-देन द्वारा किए गए परिवर्तनों को नहीं देखेंगे और यह लेनदेन परीक्षण के तुरंत बाद वापस कर दिया जाएगा।