我使用哪个 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.jarmysql-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.jarmysql-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 有啥区别?

如何测试MySQL在哪个端口上运行以及是不是可以连接?

通用应用程序的 MySQL 连接的哪个程序集

mysql如何知道左右哪个表

spring_test2

那个mysql 子查询和连接查询 一般常用哪个 谁效率高些