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

28 浏览
0 Comments

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

在我尝试运行这个程序时,出现了这个异常。这是微软的一个示例程序。我已经将sqljdbc4.jar添加到了netbeans的类路径中,用于编译和运行,通过项目属性进行设置。我还通过使用下面的导入语句测试了该类是否可以找到 - 在编译过程中没有错误,所以肯定找到了jar包。

这可能与sqldbc4.jar引用的某个dll文件或一些sql dll文件有关吗?

以下是精确的异常信息,以及几乎一样的代码(密码除外)。

异常:

run:
java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=HealthCareDatabase
在getConnection()中的错误跟踪:No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=HealthCareDatabase
错误:没有活动连接
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at javaapplication1.Connect.getConnection(Connect.java:35)
    at javaapplication1.Connect.displayDbProperties(Connect.java:50)
    at javaapplication1.JavaApplication1.main(JavaApplication1.java:23)
BUILD SUCCESSFUL (total time: 1 second)

代码:

 package javaapplication1;
import com.microsoft.sqlserver.jdbc.SQLServerDriver;
import java.*;
public class Connect {
    private java.sql.Connection con = null;
    private final String url = "jdbc:microsoft:sqlserver://";
    private final String serverName = "localhost";
    private final String portNumber = "1433";
    private final String databaseName = "HealthCareDatabase";
    private final String userName = "larry";
    private final String password = "xxxxxxx";
    // 构造函数
    public Connect() {
    }
    private String getConnectionUrl() {
        return url + serverName + ":" + portNumber + ";databaseName=" + databaseName ;
    }
    private java.sql.Connection getConnection() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con = java.sql.DriverManager.getConnection(getConnectionUrl(), userName, password);
            if (con != null) {
                System.out.println("连接成功!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("在getConnection()中的错误跟踪:" + e.getMessage());
        }
        return con;
    }
    public void displayDbProperties() {
        java.sql.DatabaseMetaData dm = null;
        java.sql.ResultSet rs = null;
        try {
            con = this.getConnection();
            if (con != null) {
                dm = con.getMetaData();
                System.out.println("驱动程序信息");
                System.out.println("\t驱动程序名称:" + dm.getDriverName());
                System.out.println("\t驱动程序版本:" + dm.getDriverVersion());
                System.out.println("\n数据库信息 ");
                System.out.println("\t数据库名称:" + dm.getDatabaseProductName());
                System.out.println("\t数据库版本:" + dm.getDatabaseProductVersion());
                System.out.println("可用目录");
                rs = dm.getCatalogs();
                while (rs.next()) {
                    System.out.println("\t目录:" + rs.getString(1));
                }
                rs.close();
                rs = null;
                closeConnection();
            } else {
                System.out.println("错误:没有活动连接");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        dm = null;
    }
    private void closeConnection() {
        try {
            if (con != null) {
                con.close();
            }
            con = null;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) throws Exception {
        Connect myDbTest = new Connect();
        myDbTest.displayDbProperties();
    }

}

0
0 Comments

java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver 是因为找不到合适的驱动程序引起的。

解决方法:

1. 确保已经将sqljdbc4.jar添加到项目中,该jar文件提供了对JDBC 4.0的支持。

2. 检查项目中是否同时添加了sqljdbc.jar,如果添加了,则需要删除该jar文件。

3. 将 Class.forName(driver).newInstance(); 替换为 DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver()); 这样可以注册驱动程序。

4. 如果在Maven中使用,需要在pom.xml中添加依赖 'com.microsoft.sqlserver'。

这样就可以解决 java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver 的问题了。

0
0 Comments

原因:出现这个问题的原因是因为URL和Class name设置错误,导致无法找到合适的驱动程序。

解决方法:需要将URL设置为jdbc:sqlserver://server:port;DatabaseName=dbname,并将Class name设置为com.microsoft.sqlserver.jdbc.SQLServerDriver。此外,需要下载并安装Microsoft SQL Server JDBC Driver 2.0。旧版本的驱动程序会导致混淆,因此需要使用新版本的驱动程序,并确保URL的前缀正确为jdbc:sqlserver://。

一些网站上的URL设置错误,将URL写成了'jdbc:microsoft:sqlserver://server:port;DatabaseName=dbname ',而实际上应该是'jdbc:sqlserver://server:port;DatabaseName=dbname '。

至于驱动程序应该放在哪里,文章中没有提及。

此外,驱动程序的下载链接已经失效。

0
0 Comments

java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver 是由于没有找到适合的驱动程序造成的。解决方法是通过在POM文件中添加以下依赖项来解决问题:


    com.microsoft.sqlserver
    mssql-jdbc
    7.0.0.jre8

然后使用以下代码进行连接:

String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=master;user=sa;password=your_password";
try {
    System.out.print("Connecting to SQL Server ... ");
    try (Connection connection = DriverManager.getConnection(connectionUrl)) {
        System.out.println("Done.");
    }
} catch (Exception e) {
    System.out.println();
    e.printStackTrace();
}

点击此链接this可以查找其他类型的CRUD查询。

适用于Java 8应用程序的驱动程序是7.0.0.jre8版本,而不是8.2.2.jre11版本,后者会导致连接问题。

0