2016-10-01 40 views
2

我創建了一個H2內存數據庫的Spring框架是這樣的:讓Spring內嵌數據庫內容

EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); 
    EmbeddedDatabase db = builder 
      .setType(EmbeddedDatabaseType.H2) //.H2 or .DERBY 
      .addScript("create-table.sql") 
      .build(); 

我想就其中連接到這個數據庫中的另一個Java應用程序和訪問數據。

我可以使用此代碼連接到數據庫:

Connection connecton = DriverManager.getConnection("jdbc:h2:mem:testdb","sa",""); 

但這返回我一個空數據庫,而不表和記錄。

Here is a description哪些告訴如何解決這個問題。

不幸的是我不明白怎麼做工作,Spring容器MethodInvokingBean,因爲我不知道在哪裏代碼,如何使用,如何工作等

我希望有人做一個簡短的教程。

感謝

+0

你測試第一個應用程序? – nurgasemetey

+0

是的,我做的很好。我可以得到沒有問題的記錄。 – Pwi

+0

第二個應用程序是否運行類似於第一個應用程序的DDL腳本?我的意思是創建/更改表格。如果是這樣,它會清除第一個應用程序保存的數據。如果您僅使用第二個應用程序來讀取數據,則可以使用只讀模式。 – harshavmb

回答

1

可以啓動TCP服務器共享數據庫。添加以下配置:

<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop"> 
    <constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,9092"/> 
</bean> 

一旦服務器啓動,其它的Java應用程序可以連接到它使用jdbc:h2:tcp://localhost:9092/mem:testdb

+0

你能告訴我在哪裏但是這個XML代碼?我怎樣才能打開這個bean的XML? – Pwi

+0

對於spring啓動應用程序,您可以使用'@ImportResource(value =「classpath:/package/filename.xml」)添加XML配置。 [這裏是一個例子](http://javarticles.com/2016/02/spring-importresource-annotation-example.html) –