【问题标题】:JDBC driver for SQL server 2014SQL Server 2014 的 JDBC 驱动程序
【发布时间】:2014-12-22 14:38:02
【问题描述】:

我们最近迁移到 SQL Server 2014,在一台机器上使用 JAVA 5,在另一台机器上使用 JAVA 6(这是一项要求)。当我尝试连接到数据库时,出现以下异常。

org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (
       com.microsoft.sqlserver.jdbc.SQLServerException:
             The server version is not supported.
             The target server must be SQL Server 2000 or later.
       )
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:168)
    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:508)
    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:207)

以下是配置:

  • 操作系统:Windows 服务器 2012
  • SQL 服务器 2014
  • JAVA 版本:JDK5u11 和 JDK6u24
  • Jar 文件:JDK5 的 sqljdbc.jar 和 JDK6 的 sqljdbc4.jar

【问题讨论】:

  • 您使用的是哪个版本的 MS JDBC?它可能太旧了,如果您还没有,请尝试使用Microsoft SQL Server JDBC Driver 4.1 for SQL Server

标签: java sql sql-server jdbc sql-server-2014


【解决方案1】:

您需要将 SQL Server JDBC 驱动程序升级到至少 4.0 版(下载 here)。然后你可以使用它的版本

  • 用于 Java 5 的 sqljdbc.jar,以及
  • 用于 Java 6 的 sqljdbc4.jar

访问 SQL Server 2014。

【讨论】:

  • 谢谢..我们将 jar 升级到 sqljdbc4.jar,它的工作原理就像一个魅力。
  • 我们遇到了 sqljdbc4.jar 的问题,由于 Microsoft 的一些更改,查询的合成无法正常工作。我在插入中运行了一个 select 语句,这导致没有结果集被返回到应用程序,并且在 java 中出现异常。当我们调试更多时,我们发现microsoft改变了sqljdbc4.jar对composit queried的工作方式。所以我们使用了 jtds jar insted,所有问题都解决了。点击链接了解更多详情 ----- stackoverflow.com/questions/28022701/….
  • 我们成功地将一个使用 ORM、存储过程和 JDBC 查询的大型项目从 JTDS 转换为 sqljdbc4 驱动程序。我们确实遇到了一个问题,JTDS 可以容忍但 sqljdbc 不能,那就是需要 SET NOCOUNT ON;大多数存储过程中的语句和许多预期返回数据但可能不会返回任何结果的 sql 语句。有关此概念的更多信息,请参阅:stackoverflow.com/questions/1483732/set-nocount-on-usage
  • 对于 SQL Server 2016 和 Java 8,应该升级 sqljdbc4.be 吗?
【解决方案2】:

我们放弃了sqljdnc4.jar 并改用jtds jar,一切都像魅力一样。

【讨论】:

  • 取决于您的应用 jtds 可能还有其他问题
  • @HennoVermeulen:更换驱动器后,我们对整个应用程序(包括性能)进行了全面检查,没有遇到任何问题。但是您是对的,其他应用程序在将驱动器更改为 jtds 时可能会出现问题。
  • 另请注意,根据 jtds 开发人员的说法,由于 microsoft 驱动程序中提供的改进,jtds 驱动程序现在已被弃用。 jtds 项目没有进行新的开发,他们建议现在切换到 ms 驱动程序。
  • @pczeus 你有关于 jtds 的信息的来源/链接吗?
  • 上一个版本是 1.3.1,于 2013 年 6 月 8 日发布。最后一次提交是在 2014 年 11 月 14 日。 SourceFourge 的 JTDS 讨论部分有一个帖子:sourceforge.net/p/jtds/discussion/129584/thread/050f9892 momo 描述:“jTDS 不再积极开发。多年来我一直是最后一个活跃的开发人员,但目前我不知道如何继续工作。我仍然希望事情可以再次改变......谁知道呢。此外,Sybase 和 Microsoft 驱动程序现在要好得多(当然,虽然仍然远非完美),使用备用驱动程序的大多数原因已经过时了。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多