Я пытаюсь получить доступ к базе данных MSSQL через Java и просто написал небольшой класс тестирования, чтобы узнать, работает ли соединение вообще. Я добавил драйвер JDBC к пути сборки через зависимость от maven.MSSQL через JDBC Ошибка: java.lang.UnsupportedOperationException
ПЕРЕВОД для исключения: не поддерживается данным драйвером. Использование библиотеки классов предлагает «sqljdbc4.jar», поддержка JDBC 4.0
Однако при выполнении кода генерируется исключение java.lang.UnsupportedOperationException. Ниже приводится полный ErrorLog:
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);
}
}
}
Я был бы признателен, если кто-то может указать мне на ошибки я сделал, так как я не могу понять его вне.
«Я добавили драйвер JDBC в путь сборки через зависимость от maven ». ... и какая зависимость будет? Подсказка: он говорит вам, что вы используете неправильную версию библиотеки. –
Спасибо за ваше предложение. Я использую сторонний репозиторий, интегрированный в 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