java - 如何在 Spring Boot 测试中连接到内存中的 HSQLDB 以进行查询

标签 java spring spring-boot hsqldb

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

最佳答案

你有两个选择。

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

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

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

关于java - 如何在 Spring Boot 测试中连接到内存中的 HSQLDB 以进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63241429/

相关文章:

java - 既然 XMLBeans 已经退役了,用什么来代替它呢?

java - Spring 不在 REST Controller 中执行验证

java - Spring Data JPA findOne() 改为 Optional 怎么用?

java - 为什么JPA会对数据库生成这么多select语句

java - 允许在 Ubuntu 17.10 上对 Spring Boot Jar 进行低级端口访问

java - BufferedInputStream 没有标记

java - 创建 FluentIterable 链作为函数,而不是立即应用

spring-boot - Liberty 配置文件无法检测 Spring Boot 组件扫描注释并且无法加载应用程序上下文

java - 应用程序 Activity 期间发生应用程序挂起或 "Not on FX application thread"

java - 如何在 Spring JPA Repository 方法中使用 @Query 注释来描述连接