簡體   English   中英

在代碼上獲取 ClassNotFoundException:“Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”

[英]Getting ClassNotFoundException on code: “Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”

這是我的第一個Java應用程序,我對JavaNetBeans完全沒有經驗。

我一直在嘗試連接到 sql 並獲取一些記錄 2 天。 問題是關於jdbc驅動程序,讓我解釋一下。 我已經下載了sqljdbc驅動程序,然后按照以下步驟操作:

右鍵單擊項目-> 選擇屬性-> 在左側單擊庫-> 在編譯選項卡下 - 單擊添加 Jar/文件夾按鈕並選擇sqljdbc4.jar文件。 那應該沒問題吧?

然后我寫了這段代碼但是我無法擺脫這個異常:

  Exception in thread "main" java.lang.ClassNotFoundException: 
  com.microsoft.sqlserver.jdbc.SqlServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:30)

這是代碼

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String url = "jdbc:sqlserver://.\\SQLEXPRESS;databaseName=Northwind; Integrated Security = SSPI ";

    Connection con = null;
    Statement stmt = null;

    ResultSet rs = null;
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");

        con = DriverManager.getConnection(url);
        String sql = "Select Top 3 from * person.Contact";
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

根據此頁面,該類稱為SQLServerDriver而不是SqlServerDriver 案例很重要!

所以,試試:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

請注意,對於較新版本的 JDBC,沒有必要使用Class.forName(...)顯式加載驅動程序類。 我鏈接到的頁面明確說明您不必這樣做。 因此,您可以刪除整行,然后它應該可以工作。

Java:在 NetBeans 中使用 MSSQL 的 JDBC 連接

腳步

  1. 從以下位置下載 JDBC: https : //www.microsoft.com/en-in/download/details.aspx?id=11774
  2. 運行 sqljdbc__enu.exe - 將此 zip 文件解壓到 %Program Files (x86)% 中,默認目錄為:Microsoft JDBC DRIVER for SQL Server
  3. 在 NetBeans 中創建新項目
  4. 右鍵單擊項目 - 選擇屬性 - 從左側面板中選擇庫 - 單擊添加 JAR/文件夾按鈕 - 選擇您的 JAR 文件並打開 - 確定
  5. 打開Sql Server配置管理器-在Sql Server網絡配置下選擇SQLEXPRESS的協議-右鍵單擊TCP/IP-選擇屬性-將啟用更改為是-單擊IP地址-轉到IPAll-將TCP動態端口更改為49169,將TCP端口更改為1433-應用 - 確定 - 重新啟動計算機
  6. 打開運行並鍵入 Services.msc - 啟動 SQL Server 瀏覽器
  7. 轉到項目並編寫用於數據庫連接的代碼。

本地數據庫連接代碼:

String url = "jdbc:sqlserver://YOUR PC NAME;instanceName=SQLEXPRESS;DatabaseName=dbname;integratedSecurity=true";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection myCon = DriverManager.getConnection(url);

Statement myStmt = myCon.createStatement();
ResultSet myRs = myStmt.executeQuery("select * from table name");

我有關於這個問題的更新。

  1. 轉到鏈接,找到您兼容的 JDBC 驅動程序(我下載的是 6.0 版本)。
  2. 在您下載的文件中找到合適的 jar(我使用的是 jre7\\sqljdbc41.jar)。
  3. 對於 Intellij Idea,按Ctrl+Shift+Alt+S並打開項目結構,然后在依賴項部分添加您的 jar 文件。

我希望它也適用於你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM