我想通過Java訪問MSSQL數據庫,並且只寫了一個小測試類來查看連接是否可用。我已經通過maven依賴項將JDBC驅動程序添加到構建路徑中。通過JDBC的MSSQL錯誤:java.lang.UnsupportedOperationException
TRANSLATION for exception: is not supported by this driver。使用類庫提供的'sqljdbc4.jar',支持JDBC 4.0
但是,當執行代碼時拋出java.lang.UnsupportedOperationException。下面是完整的錯誤日誌:
java.lang.UnsupportedOperationException: Die Java-Laufzeitumgebung (Java Runtime Environment, JRE), Version 1.7, wird von diesem Treiber nicht unterstützt. Verwenden Sie die Klassenbibliothek 'sqljdbc4.jar', die Unterstützung für JDBC 4.0 bietet.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.<init>(SQLServerConnection.java:304)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1011)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at test.TestJDBC.dbTest.main(dbTest.java:28)
這裏是我的測試類:
package test.TestJDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class dbTest {
@SuppressWarnings("nls")
public static void main(final String args[]) {
Connection connection = null;
try {
// the sql server driver string
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// the sql server url
String url = "jdbc:sqlserver://[dbserver]:1433;DatabaseName=[dbname]";
// get the sql server database connection
connection = DriverManager.getConnection(url, "XXX", "YYY");
System.out.println("Connected.");
// Create and execute an SQL statement that returns some data.
String SQL = "SELECT X, Y, Z FROM ABC";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
// Iterate through the data in the result set and display it.
while (rs.next()) {
System.out.println(rs.getString(1) + " " + rs.getString(2));
}
} catch (Exception e) {
System.out.println("Es ist ein Fehler aufgetreten:");
System.out.println(e.getMessage());
e.printStackTrace();
System.exit(0);
}
}
}
我將不勝感激,如果有人可以點我到我所做的錯誤,因爲我似乎無法算出它出。
「我有通過maven依賴項將JDBC驅動程序添加到構建路徑中。「 ...以及哪個依賴性會是?提示:它告訴你你正在使用錯誤版本的庫。 –
感謝您的建議。我正在使用集成到maven中的第三方存儲庫(... \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0)。它指向sqljdbc4.jar文件。在Eclipse中打開它時,我還可以在那裏看到正確的包com.microsoft.sqlserver.jdbc和microsoft.sql。第一個是我在Class.forName聲明中提到的包,所以我沒有看到這裏有什麼錯誤:( – daZza
嘗試在你的項目上執行'mvn dependency:tree'。它看起來像錯誤的sqljdbc.jar是如果是的話,你可以定義一個'exclude'。 – DB5