【问题标题】:How to connect to HSQLDB in-memory in Spring Boot tests to make a query如何在 Spring Boot 测试中连接到内存中的 HSQLDB 以进行查询
【发布时间】:2020-08-04 06:40:19
【问题描述】:

我有一个带有 mysql db 的 Spring Boot 应用程序,但是 在运行测试时使用了 HSQLDB是否可以连接到这个内存数据库来执行查询? 我必须在测试/应用程序中更改什么才能运行它?我已经尝试运行 hsql 数据库管理器并连接到该数据库,但它似乎是空的,但实际上它不是空的,因为在应用程序中我正在调试代码并从该数据库读取数据。

【问题讨论】:

  • 你在使用 SpringDataJpaTest 吗?
  • 我正在使用 Spring Data JPa,但我不确定我是否正在使用 SpringDataJpaTest... 我有与 spring 上下文的集成测试。
  • 然后你做了一个提交?
  • 这不应该被关闭。了解此设置的人很清楚这个问题,答案是将 HSQLDB 作为服务于内存数据库的服务器运行。

标签: java spring spring-boot hsqldb


【解决方案1】:

你有两个选择。

一种选择是在 Spring 中启动 HyperSQL (HSQLDB) 服务器。此选项在答案How to start HSQLDB in server mode from Spring boot application 中进行了讨论,然后在单独的 Java 进程中启动 HyperSQL DatabaseManagerSwing 并使用 URL:jdbc:hsqldb:hsql://localhost/testdb 连接到 HyperSQL Server。

另一种选择是在 Spring 中启动 HyperSQL DatabaseManagreSwing。您可以修改为 Server 提供的 bean 模板并启动 org.hsqldb.util.DatabaseManagerSwing 而不是 Server。在这种情况下,DatabaseManager 应该连接到 URL:jdbc:hsqldb:mem:testdb

注意,在这两种情况下,您都需要指定jdbc:hsqldb:mem:testdb URL 作为 Spring 数据源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2021-01-24
    • 2017-09-06
    • 2018-07-16
    • 1970-01-01
    • 2014-09-25
    • 2013-03-24
    • 2015-04-21
    相关资源
    最近更新 更多