如何在 Spring 引导 API 中使用内存数据中的 h2?

How can you use h2 in memory data in a Spring Boot API?

我们正在使用 Spring-Boot 构建一个新的 API。为了测试,我们想使用内存数据库中的 h2 来测试我们的 API。

如何设置 h2 db 以便 Spring-boot 可以在该会话期间使用该数据?

理想情况下,我可以调用 GET 并检索在我的 h2 数据库中创建的所有内容

在您的测试文件夹中,创建一个 Defaultdatasourceconfig class,它将包含所有必需的 bean(如 DSbean、TXManager bean 等)。对于新的 DriverManagerDataSource() 方法,传递必要的数据源属性(使用以下字段创建属性 class 并使用 @Value 和 属性 名称对其进行注释),将这些属性添加到您的 application-test.属性文件

db.hsql.url=jdbc:hsqldb:mem:testdb
db.hsql.username=sa
db.hsql.password=sa
db.hsql.driver.name=org.hsqldb.jdbc.JDBCDriver
spring.datasource.platform=hsqldb

如果您只想加载与您的用例相关的特定 tables,请将其添加到属性文件 spring.datasource.schema=classpath:abc.sql 并添加 abc.sql 在与 application-test.prpoerties 相同的文件夹下。 因此,当您 运行 测试时,当构建上下文时,它将使用 hsql 数据库作为主数据库,通过执行 sql 加载 table 并使用此数据库。 您需要在 class 路径中添加 hsql 驱动程序。 同样可以用 h2