2011-09-06 73 views
0

我有一個試圖連接到MS SQL數據庫的JAVA類。現在,當我嘗試連接數據庫時,出現錯誤「找不到合適的驅動程序.....」將MS SQL數據庫連接到Java程序

爲什麼會發生這種情況?

這是代碼。

DB db = bew DB(); 
db.dbConnect(); 

... 

class DB 
{ 
    public void dbConnect() { 
     try 
     { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      String connectionUrl = "jdbc:sqlserver://web.address.com;" + 
       "databaseName=testdb;user=user.name;password=*****;"; 

      Connection con = DriverManager.getConnection(connectionUrl); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace();     
     } 
    } 
} 

我使用sqljdbc.jar作爲我的驅動程序,並將其添加到我的類路徑中。

回答

4

的SQLException:沒有合適的驅動程序找到

這個異常是指其可被用於獲取連接的JDBC URL不被任何JDBC驅動程序的支持,據加載。所以,這個例外可能至少有三個可能的原因:

  • 正確的驅動程序根本沒有加載。
  • 加載驅動程序失敗,異常被抑制,從而導致代碼繼續運行並嘗試獲取連接而不是中止。
  • JDBC URL顯然是錯誤的。

讓我們看你做了什麼遠:

  • 您使用的是Microsoft SQL Server數據庫。
  • 您已經加載了Sun JDBC-ODBC橋驅動程序。
  • 您正在使用特定於SQL Server JDBC驅動程序的JDBC URL,它看起來正確。

啊對,你已經加載了錯誤的JDBC驅動!

您需要Microsoft SQL Server JDBC driver或至少jTDS JDBC driver,它實際上是第三方驅動程序,它也支持SQL Server,但被告知比Microsoft自己的JDBC驅動程序好得多。您可以在文檔中找到您需要指定的驅動程序類名稱來加載驅動程序。對於Microsoft之一,它的下面:

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

其實我已經下載了我的司機在你已經提供「Microsoft SQL Server的JDBC驅動程序」的網站。我想知道爲什麼驅動程序名稱是不同的,而不是「com.microsoft.jdbc.sqlserver.SQLServerDriver」。 ( –

+0

也許你是在沒有閱讀文檔的情況下複製了錯誤的代碼片段?JDBC-ODBC橋驅動程序只適用於MS Access或任何其他可以創建DSN的數據庫。 – BalusC

相關問題