คุณสามารถเรียกใช้เว็บเซิร์ฟเวอร์ H2 ภายในแอปพลิเคชันของคุณซึ่งจะเข้าถึงฐานข้อมูลในหน่วยความจำเดียวกัน นอกจากนี้คุณยังสามารถเข้าถึง H2 ทำงานในโหมดเซิร์ฟเวอร์โดยใช้โปรแกรม JDBC ใด ๆ ทั่วไปเช่นSquirrelSQL
อัพเดท:
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 คุณควรขึ้นอยู่กับการยืนยันเท่านั้นไม่ใช่ในการดูเนื้อหาฐานข้อมูลด้วยตนเอง ใช้สิ่งนี้สำหรับการแก้ไขปัญหาเท่านั้น
หมายเหตุหากคุณใช้กรอบการทดสอบ Spring คุณจะไม่เห็นการเปลี่ยนแปลงที่เกิดขึ้นจากธุรกรรมที่กำลังดำเนินอยู่และธุรกรรมนี้จะถูกย้อนกลับทันทีหลังจากการทดสอบ