【发布时间】:2014-01-22 11:47:22
【问题描述】:
我正在尝试通过 Java 访问 MSSQL 数据库,并且刚刚编写了一个小型测试类来查看连接是否正常工作。我已通过 Maven 依赖项将 JDBC 驱动程序添加到构建路径中。
异常翻译: 此驱动程序不支持。使用类库提供'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 声明中引用的包,所以我看不出这里有什么问题:(
-
尝试在您的项目上执行
mvn dependency:tree。看起来错误的 sqljdbc.jar 登陆了类路径。也许它被包含在其他地方的短暂依赖中?如果是,那么您可以定义一个exclude。
标签: java sql-server maven exception jdbc