我们有两种方法可以连接到我们的MSSQL数据库,一种是Sun JDBC ODBC桥,另一种是MSSQL JDBC Driver。
我们正在进行一些重组,并希望采用统一的数据库连接方法。
我们应该使用哪种驱动程序? (我是故意将问题放在一个非常广泛的层面,我想听听人们的意见)
答案 0 :(得分:4)
Sun的网桥驱动程序不应用于原型设计和快速开发之外的任何其他工作。
如果可用的话,你应该总是使用IV型JDBC驱动程序。我知道SQL Server有两个:Microsoft's version和jTDS。
即使是Sun / Oracle也是如此。这来自他们的docs:
如果可能,请使用Pure Java JDBC驱动程序而不是Bridge和 ODBC驱动程序。这完全消除了客户端配置 ODBC要求。它还消除了Java VM的潜力 可能会被本机代码中的错误所破坏 Bridge(即Bridge本机库,ODBC驱动程序管理器) 库,ODBC驱动程序库和数据库客户端库。)
建议将JDBC-ODBC Bridge驱动程序用于原型设计 努力以及没有其他基于JDBC技术的驱动程序的情况 存在。如果可以使用商业的全Java JDBC驱动程序,我们就可以了 建议使用它代替Bridge。
答案 1 :(得分:0)
使用Microsoft提供的MSSQL Type 4 JDBC driver或jTDS driver。在撰写本文时,Microsoft提供的MSSQL JDBC驱动程序版本为3.0,但版本4可用作预览版本。
避免使用Sun JDBC ODBC驱动程序,因为它确实是安装在计算机中的ODBC驱动程序的桥梁。已经在StackOverflow上询问Atleast one question为什么应该使用Type 4驱动程序而不是Type 1(ODBC桥接)或Type 2(基于JNI)驱动程序。
要添加到该问题中发布的答案,除非您无法从供应商处找到JDBC驱动程序,否则应避免使用类型1(ODBC驱动程序桥)。毕竟,依赖于供应商提供的ODBC驱动程序以及Sun JDBC-ODBC驱动程序并不具有任何商业意义;生产中遇到的任何错误都可能在。因此,如果您正在为业务线应用程序做出此决定,那么您应该使用经过良好测试的第三方JDBC驱动程序(如jTDS或DataDirect)或供应商提供的驱动程序(除非您的经验表明驱动程序写得不好或供应商无法在足够的时间内解决问题或提供变通方法。
答案 2 :(得分:0)
还有OpenLink Multi-tier JDBC Driver for SQL Server ...
此驱动程序有其位置 - 需要额外的安全性和可配置性。