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
相关产品推荐
相关产品推荐

