因爲這個問題折騰了以上午,終於解決了,做下記錄:
錯誤提示爲:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
在出這個問題前,首先確保連接的代碼不存在語法上的錯誤,數據庫的登錄名以及密碼都正確,好了,下面開始:
出了兩個問題:
1、我原來的連接語句爲
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;databasename=XX","sa","123");
改成一下即可
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databasename=XX","sa","123");
原因是上面sqlserver2000的連接方式,而下面是sqlserver05或者08的連接方式,這個地方要注意!
2,改完後,我發現還是有問題,百思不得其解,突然發現我下載的連接驅動包裏面有兩個jar文件,而我使用的是sqljdbc.jar,想想,換一個會不會好,後來換成了另一個sqljdbc4.jar,完美解決,原因如下:
以下是msdn中 JDBC Driver的系統要求中的解釋:我們清楚的看到 sqljdbc.jar 類庫要求使用 5.0 版的 Java 運行時環境 (JRE)。連接到數據庫時,在 JRE 6.0 上使用 sqljdbc.jar 會引發異常。而我的jre爲6.0的,自然報異常。
JAR |
說明 |
---|---|
sqljdbc.jar |
sqljdbc.jar 類庫提供對 JDBC 3.0 的支持。 sqljdbc.jar 類庫要求使用 5.0 版的 Java 運行時環境 (JRE)。連接到數據庫時,在 JRE 6.0 上使用 sqljdbc.jar會引發異常。 注意:
JDBC 驅動程序不支持 JRE 1.4。使用 JDBC Driver 時必須將 JRE 1.4 升級至 JRE 5.0 或 JRE 6.0。
在某些情況下,您可能需要重新編譯應用程序,因爲它可能與 JDK 5.0 或更高版本不兼容。 有關詳細信息,請參閱 Sun Microsystems 網站上的文檔。 |
sqljdbc4.jar |
sqljdbc4.jar 類庫提供對 JDBC 4.0 的支持。它不僅包括 sqljdbc.jar 的所有功能, 還包括新增的 JDBC 4.0 方法。 sqljdbc4.jar 類庫要求使用 6.0 版的 Java 運行時環境 (JRE)。在 JRE 1.4 或 5.0 上 使用 sqljdbc4.jar 會引發異常。 注意:
如果應用程序必須在 JRE 6.0 上運行,即使該應用程序不使用 JDBC 4.0 功能
,也應使用 sqljdbc4.jar。 |