首页 文章

使用Java中的SQL驱动程序连接到远程SQL Server

提问于
浏览
0

主要说明:

  • 使用SQL Server 2005

  • 使用JDK 1.8

  • JDK 1.8不支持JDBC-ODBC Bridge ANYMORE

  • 我的库中有Microsoft SQLJDBC 4.0和6.2

我试图用Java连接到远程SQL Server很长一段时间,但仍然无法做到 . 我希望使用我创建的DSN进行连接 . 新驱动程序JDK 1.8使用需要我在下面创建的连接URL . 下面代码中的所有内容都是正确的 . 但我仍然得到错误:

严重:此驱动程序不支持Java运行时环境(JRE)版本1.8 . 使用sqljdbc4.jar类库,它提供对JDBC 4.0的支持 . java.lang.UnsupportedOperationException:此驱动程序不支持Java Runtime Environment(JRE)1.8版 . 使用sqljdbc4.jar类库,它提供对JDBC 4.0的支持 .

这是我的代码:

String connectionUrl = "jdbc:sqlserver://InterfaceDSN" +  
    "databaseName=DB_Local;Trusted_Connection=True;integratedSecurity=true";  

    // Declare the JDBC objects.  
    Connection con = null;  
    Statement stmt = null;  
    ResultSet rs = null;  

    try 
    {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
        con = DriverManager.getConnection(connectionUrl);  

        String SQL = "SELECT TOP 10 * FROM Person.Contact";  
        stmt = con.createStatement();  
        rs = stmt.executeQuery(SQL);

        while (rs.next()) {  
          System.out.println(rs.getString(4) + " " + rs.getString(6));  
        }  
    }catch (Exception e) 
    {  
        e.printStackTrace();  
    }

总结:知道我拥有什么以及我需要什么,是否有另一种连接数据库的方法,考虑到我使用JDK 1.8和SQL Server 2005,我的选项用完了 .

2 回答

  • 0

    发生了什么事

    正如消息所说:

    java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.8 is not supported by this driver.
    Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
    

    这是因为JDBC4.0有很多变化,这意味着你需要使用更新版本的驱动程序 . 您无法在新版本上运行旧驱动程序 .

    如何修复它

    使用6.2或版本6.2.2.jre8应该解决问题 .

    额外信息

    在JDBC 4.0(Java 1.6)之后,您不应该需要以下代码

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    
  • 1

    从用于SQL Server的Microsoft JDBC驱动程序4.2,Sun Java SE Development Kit(JDK)8.0和Java开始

    您可以在其中阅读here,您可以在其中找到JDBC驱动程序的要求 .

    因此,您必须至少将JDBC驱动程序更新到v 4.2 . 这很清楚 .

相关问题