我使用哪个 MySQL 连接器:mysql-connector-java-5.1.46.jar 或 mysql-connector-java-5.1.46-bin.jar 有啥区别?
Posted
技术标签:
【中文标题】我使用哪个 MySQL 连接器:mysql-connector-java-5.1.46.jar 或 mysql-connector-java-5.1.46-bin.jar 有啥区别?【英文标题】:Which MySQL connector do I use: mysql-connector-java-5.1.46.jar or mysql-connector-java-5.1.46-bin.jar What is the difference?我使用哪个 MySQL 连接器:mysql-connector-java-5.1.46.jar 或 mysql-connector-java-5.1.46-bin.jar 有什么区别? 【发布时间】:2018-08-29 10:58:11 【问题描述】:我正在准备第一次使用jdbc,并且正在为mysql安装jdbc驱动程序。
但是,我不清楚将这些文件中的哪些移动到 Eclipse 中的 WEB_INF/lib 文件夹中。它们似乎都包含相同的内容,并一起包含在 MySQL 连接器的下载 zip 文件中。
我到处搜索,但找不到任何文档来解释要使用哪些文件。
【问题讨论】:
我可以向您保证一件事:您的计算机不会在您尝试时融化。这似乎是一个简单的打包错误,任何一个文件都应该可以工作。 @Gimby 不是包装错误,是故意改动,看我的回答。 @Gimby 当然,我会从名称中删除-bin
。但我认为 Oracle 希望保留它以实现向后兼容性。
@MarkRotteveel 朋友,你已经得到了我的支持:) 我对这个决定的任何保留都被取消了,因为它在发行说明中得到了公开和明确的解释。
【参考方案1】:
我以为你在开玩笑,但我刚刚从 https://dev.mysql.com/downloads/connector/j/ 下载了 zip,而且确实包含两者。
mysql-connector-java-5.1.46.jar
和 mysql-connector-java-5.1.46-bin.jar
是二进制相同的,除了 META-INF/INDEX.LIST
(它包含实际的 jar 文件名)。我已经解压了两者并使用 kdiff3 进行了比较。
简而言之:您可以使用任意一种:随心所欲。
CHANGES
中提到了此更改:
- 修复 Bug#27231383,提供不带“-BIN”的 MAVEN 友好的商业包。
有趣的是,在 MySQL 错误跟踪器中没有错误 27231383(对于列出的“正常”错误,这个数字太高了),所以它可能来自 Oracle 中的另一个系统。
另外,online Connector/J 5.1.46 release notes 提到:
Oracle 提供的 Connector/J 5.1 捆绑包现在包含一个 名称为
mysql-connector-java-5.1.ver.jar
的附加jar 包 (mysql-connector-java-commercial-5.1.ver.jar
用于商业 捆绑)。和原来的其他jar包一样 包名为mysql-connector-java-5.1.ver-bin.jar
(mysql-connector-java-commercial-5.1.ver-bin.jar
用于商业 bundles),除了它对 Maven 更友好的文件名。 (错误号 27231383)
据推测,鉴于与 Maven 命名约定更匹配,这使得在本地/公司 Maven 存储库中安装库变得更容易(例如,如果您不想要或在法律上不能使用 Maven Central)。
但要重复一遍:它们是相同的,你可以使用任何一个。
【讨论】:
您对这个问题的调查程度给我留下了深刻的印象。谢谢您的回答。这很有帮助。以上是关于我使用哪个 MySQL 连接器:mysql-connector-java-5.1.46.jar 或 mysql-connector-java-5.1.46-bin.jar 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
我使用哪个 MySQL 连接器:mysql-connector-java-5.1.46.jar 或 mysql-connector-java-5.1.46-bin.jar 有啥区别?