You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目连接SQL Server Express数据库失败求助

Spring Boot连接SQL Server Express失败的排查与解决建议

一、修正连接字符串的核心错误

你当前连接字符串里的databaseName=dbo.employee_directory是关键错误——dbo是SQL Server的默认架构名,不是数据库的前缀,正确写法应该直接写数据库名employee_directory。另外注意配置项不要带多余空格,以下是修正后的基础示例:

spring.datasource.url=jdbc:sqlserver://localhost;encrypt=true;trustServerCertificate=true;databaseName=employee_directory;integratedSecurity=true

如果你的SQL Server Express是命名实例(默认安装的Express大多是命名实例),服务器地址需要写成localhost\SQLEXPRESS,Java配置里要转义反斜杠,所以最终字符串是:

spring.datasource.url=jdbc:sqlserver://localhost\\SQLEXPRESS;encrypt=true;trustServerCertificate=true;databaseName=employee_directory;integratedSecurity=true

二、确认SQL Server JDBC驱动依赖

Spring Boot项目必须引入对应版本的SQL Server JDBC驱动,Maven项目在pom.xml中添加:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <scope>runtime</scope>
</dependency>

Gradle项目在build.gradle中添加:

runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc'

注意驱动版本要和你的SQL Server版本兼容(比如SQL Server 2019适配9.x版本驱动)。

三、Windows集成认证的配置细节

使用integratedSecurity=true(Windows认证)时,需满足两个条件:

  • 运行Spring Boot应用的Windows用户,必须拥有employee_directory数据库的访问权限(和你用SSMS/VBA连接的用户一致即可)
  • 64位系统下,需将SQL Server JDBC驱动包中的sqljdbc_auth.dll(路径一般是sqljdbc_xx.x\enu\auth\x64)放到JRE的bin目录,或者在VM参数中指定:-Djava.library.path=存放dll的文件夹路径

四、SQL Server服务与网络配置检查

  • 确认SQL Server (SQLEXPRESS)服务处于运行状态(可通过Windows服务管理器查看)
  • 启用TCP/IP协议:打开SQL Server配置管理器,找到SQL Server网络配置 -> SQLEXPRESS的协议,启用TCP/IP后重启SQL Server服务
  • 若修改过默认端口(1433),需在连接字符串末尾追加;port=你的端口号

五、开启日志定位具体错误

在application.properties中添加日志配置,查看连接过程的详细报错:

logging.level.com.microsoft.sqlserver.jdbc=DEBUG
logging.level.org.springframework.jdbc=DEBUG

根据日志中的具体错误(如权限不足、数据库不存在、驱动加载失败等)针对性解决。

内容的提问来源于stack exchange,提问作者Dudsworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:52:05