Quarkus连接SQL Server/MySQL提示JDBC驱动类找不到如何解决?
问题根因
你的错误日志明确抛出java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver,核心原因是你仅在pom.xml的<dependencyManagement>节点中声明了mssql驱动的版本,没有在<dependencies>节点中实际引入驱动依赖,导致Quarkus构建时无法加载对应驱动类。之前配置MySQL失效也是同样的逻辑:没有正确引入Quarkus官方的JDBC扩展依赖。
解决方案
- 第一步:添加Quarkus官方的SQL Server JDBC扩展
直接执行Quarkus扩展添加命令即可自动完成依赖引入,不需要手动修改pom:
如果要手动修改pom,在./mvnw quarkus:add-extension -Dextensions="jdbc-mssql"<dependencies>节点下添加以下配置即可,无需单独引入微软官方的mssql驱动包,Quarkus扩展会内置适配当前版本的驱动:<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-jdbc-mssql</artifactId> </dependency> - 第二步:简化数据源配置
你当前application.properties中已经配置了quarkus.datasource.db-kind=mssql,Quarkus会自动匹配对应驱动类,可以删除quarkus.datasource.jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver这一行,避免手动配置出错。 - 第三步:重新构建项目
执行以下命令强制更新依赖并构建,避免本地缓存导致的依赖加载异常:./mvnw clean install -U
如果之后需要切回MySQL,也是同样的逻辑,添加Quarkus官方的MySQL JDBC扩展即可:
./mvnw quarkus:add-extension -Dextensions="jdbc-mysql"
内容的提问来源于stack exchange,提问作者Vitor
相关产品推荐
相关产品推荐

