【问题标题】:Get Spring embeded database content获取 Spring 嵌入式数据库内容
【发布时间】:2017-02-10 01:08:20
【问题描述】:

我在 Spring 框架中创建了一个 H2 内存数据库,如下所示:

  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,因为我不知道在哪里编码、如何使用、如何工作等等。

如果有人制作一个简短的教程,我将不胜感激。

谢谢

【问题讨论】:

  • 您是否测试过第一个应用程序?
  • 是的,我做到了,而且工作正常。我可以毫无问题地获取记录。
  • 第二个应用程序是否运行类似于第一个应用程序的 DDL 脚本?我的意思是创建/更改表。如果是这样,它将清除第一个应用程序保留的数据。如果您使用第二个应用程序只是为了读取数据,您可以使用只读模式。
  • Java 没有使用任何 .dll 文件。只读模式在概念上与数据库连接无关。

标签: java database spring-boot h2 imdb


【解决方案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 连接到它

【讨论】:

  • 你能告诉我除了这个 XML 代码在哪里吗?如何打开这个 bean XML?
  • 对于spring boot app,可以使用@ImportResource(value="classpath:/package/filename.xml")添加XML配置。 Here is a example
猜你喜欢
  • 2013-07-22
  • 1970-01-01
  • 2021-05-24
  • 2012-10-22
  • 2018-06-13
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
相关资源
最近更新 更多