在内存(嵌入式)数据库中配置 SQL Server 以在 Spring 中进行测试

Posted

技术标签:

【中文标题】在内存(嵌入式)数据库中配置 SQL Server 以在 Spring 中进行测试【英文标题】:Configure SQL Server in memory (embedded) database for testing purpose in Spring 【发布时间】:2021-02-11 15:32:52 【问题描述】:

如何配置我的 Spring Boot 应用程序,以便在我运行单元测试时它将使用嵌入式 SQL Server 以便可以执行存储过程?

【问题讨论】:

【参考方案1】:

使用spring boot jpa

compile('org.springframework.boot:spring-boot-starter-data-jpa')

有一个 application-local.yaml 配置

spring:
  datasource:
    driverClassName: org.h2.Driver
    username: sa
    password: password
    url: jdbc:h2:mem:testdb;MODE=MSSQLServer;DATABASE_TO_LOWER=TRUE

MODE 可以是任意的,具体取决于您的 dev 或 prod db 来模拟相同的情况。

在 build.gradle 中添加以下内容

bootRun 
    args = ["--spring.profiles.active=local"]

【讨论】:

你能给配置和所有属性的例子/代码sn-p吗?在应用程序加载期间,我收到程序执行的语法错误。以上模式是否兼容MS sql过程执行? 除此之外,存储过程采用与 ms sql 兼容的语法。错误是:java.lang.IllegalStateException:无法加载 ApplicationContext 原因:org.h2.jdbc.JdbcSQLException:SQL 语句中的语法错误 [42001-148]

以上是关于在内存(嵌入式)数据库中配置 SQL Server 以在 Spring 中进行测试的主要内容,如果未能解决你的问题,请参考以下文章

在sqlserver2008企业管理器中批量导入数据时,提示内存不足,然后自动关闭。帮忙看看啥问题?

Tableau Server 中的直接 SQL Server 连接,业务用户没有数据库的读取权限

SQL Server数据库配置改进

怎样进入交互式sql界面

sQL server 啥是实例

我可以将 Sql Server CE (3.0) 用作 Windows 应用程序的嵌入式数据库吗?我必须在机器上安装 Sql Server CE 吗?