如何解决:找不到适用于jdbc:sqlserver的驱动程序

时间:2019-04-20 10:11:12

标签: java sql-server jdbc

我试图连接到与该应用程序在同一台计算机上运行的MS SQL Server数据库,但是我不断收到错误消息:

  

找不到适合的驱动程序   jdbc:sqlserver:// localhost:1433;数据库= SQLTEST;用户= TEST;密码= 1234567890;加密= true; trustServerCertificate = false; loginTimeout = 30;

我正在运行MS SQL Server 2017和JDK1.8.x。

我做的第一件事是使用T-SQL在SSMS中以以下方式创建用户:

USE SQLTEST
CREATE ROLE TEST
GRANT SELECT, INSERT ON SCHEMA :: [dbo] TO TEST
CREATE LOGIN TEST_LOGIN WITH PASSWORD = '1234567890'
CREATE USER USER_TEST FROM LOGIN TEST_LOGIN
ALTER ROLE TEST ADD MEMBER USER_TEST

然后我使用Maven将驱动程序添加到pom.xml文件中的项目中:

<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
     <groupId>com.microsoft.sqlserver</groupId>
     <artifactId>mssql-jdbc</artifactId>
     <version>7.2.2.jre8</version>
</dependency>

接着添加和更改Microsoft提供的示例代码(请注意,它应该成为JAX-RS REST-API,这就是其中存在注释的原因):

@Path("t2")
public class T2 {
    @GET
    public String show() {
        String r = "";
        String connectionUrl =
                "jdbc:sqlserver://localhost:1433;"
                        + "database=SQLTEST;"
                        + "user=TEST;"
                        + "password=1234567890;"
                        + "encrypt=true;"
                        + "trustServerCertificate=false;"
                        + "loginTimeout=30;";

        try (Connection connection = DriverManager.getConnection(connectionUrl);) {
            // Code here.
        }
        // Handle any errors that may have occurred.
        catch (SQLException e) {
            e.printStackTrace();
            r = e.getMessage();
        }
        return r;
    }
}

运行此命令将导致本文开头给出的错误。我忘记了什么还是做错了什么?

1 个答案:

答案 0 :(得分:1)

看起来与此问题相似

java.sql.SQLException: No suitable driver found for jdbc:sqlserver

看起来好像没有Class.forName(“ xxxx”);在try语句的DriverManager.getConnection部分之前。