2016-10-01 49 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) –