ms sql microsoft的jdbc驱动程序和jTDS的驱动程序之间的差异

ope*_*sas 24 java sql-server jtds jdbc

每个驱动程序之间有什么区别?我的意思是,除了其中一个是开源的

每个人的利弊是什么?

你会推荐哪一个?


这里是jTDS自己对这个主题的看法:http://jtds.sourceforge.net/

jzd*_*jzd 16

它们是不同的实现.jTDS驱动程序是类型4,根据我的经验,它具有更好的性能.我在生产环境中使用jTDS驱动程序已经5年没有任何问题了.

我建议使用jTDS.

  • Microsoft SQL Server JDBC驱动程序也是类型4驱动程序.虽然它在过去几年中有所改善,但它仍然不如jTDS那么好和稳定. (8认同)
  • [Microsoft SQL Server JDBC驱动程序现在是开源的](https://github.com/Microsoft/mssql-jdbc)也是如此. (2认同)

Vad*_*zim 7

尽管多年来,jTDS远远超过了错误的mssql自己的驱动程序,但最近情况却相反。

这是来自https://confluence.atlassian.com/bitbucketserver/transitioning-from-jtds-to-microsoft-s-jdbc-driver-776640388.html的 qoute :

为什么要更换司机?

Bitbucket Server用于简化其持久层的Hibernate的最新版本提出了一个要求,即所使用的JDBC驱动程序和连接池必须符合JDBC4。JDBC4是Java 6引入的。

Bitbucket Server 2.1之前的版本使用的jTDS驱动程序是JDBC3驱动程序,与Java 1.3兼容,因此不能与较新版本的Hibernate一起使用。尽管jTDS 1.3.0和1.3.1声称要实现JDBC4和JDBC4.1,但实际上并没有。新方法已经“实现”,但是它们的实现都抛出了新的AbstractMethodError(),这意味着它们实际上无法使用。(在GitHub上查看示例)。

由于jTDS 1.3.1不提供功能正常的JDBC4实现,因此决定用Microsoft自己的SQL Server驱动程序替换jTDS。微软的驱动程序得到了积极维护,jTDS自2014年以来就没有进行过更新(在2014年进行的一轮小规模更新之前,它已有多年没有更新过)。Microsoft提供了完整的JDBC4.2(Java 8)驱动程序,并支持SQL Server的所有功能,包括SQL Server 2016。

  • 是的,jTDS已经过时了。去年,我将一个应用程序升级到Java 8,发现在带SSL的Java 8中使用jTDS时存在错误。Depspite自2014年以来在jTDS sourceforge论坛上已经有一个包含可用补丁的错误报告,但该驱动程序仍未得到更新以修复它。我必须建立自己的副本以包含此修复程序。现在这个星期,我发现了另一个错误。查询datetime2列时,getMetaData将列类型错误地报告为nvarchar。Microsoft驱动程序可以正常工作。 (3认同)