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

时间:2017-10-26 15:31:07

标签: java sql sql-server jdbc dsn

主要提示:

  • 使用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 Runtime Environment(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 :(得分:1)

发生了什么

正如消息所说:

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

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

如何解决

仅使用6.2或版本6.2.2.jre8可以解决问题。

额外信息

在JDBC 4.0(Java 1.6 +)

之后,您不需要以下代码
def add(x, y):

    return x + y

答案 1 :(得分:0)

  

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

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

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