java.sql和mysql.jdbc之间的区别

时间:2011-04-05 08:29:48

标签: java mysql database-connection

我在2010年的最后一个季度才学习Java。我可以说我目前获得的知识还不够,而且还有很多改进。我在开发过程中仍然在学习,但我的大多数代码都是来自其他当前工作应用程序的片段。我想我研究语言的方式会影响我所知道的方式。我没有先学习基本知识,而是跳到了影响我理解方式的高级功能。 (我确实提前完成了以前的项目任务。)

我经常使用import java.sql.connection等连接到我的MySql数据库。我正在使用Eclipse IDE,然后在创建Connection / PreparedStatement实例时我没有导入包。 Eclipse将显示我遇到mysql.jdbc.*的相关包。

虽然我做了一些关于它的研究但对我来说仍然不太清楚。这些与包的区别。

  • 它有利有弊吗?
  • 它与性能和安全性有显着差异吗?
  • 它以不同的方式使用吗?
  • 还有更多要知道的事情吗?

我知道有人可以更多地了解这一点。

2 个答案:

答案 0 :(得分:12)

引用com.mysql.jdbc.Connection的javadoc:

  

此接口包含的方法被视为JDBC API的“供应商扩​​展”,用于MySQL的java.sql.Connection实现。

因此,该类至少构建在JDBC之上以添加更多功能。但它仍然是JDBC的核心 - 当你使用纯JDBC时,你正在使用这个类,你只是看不到它。

我想说如果你只使用标准的JDBC接口构建应用程序,那么就这样做。如果您绝对需要特定于MySQL的API功能,那么请使用MySQL接口。我主要与Oracle合作,多年来我一直在这样做,我从来没有回到任何特定于Oracle的接口;你可以用JDBC做很多事情。

解决您的观点:

  • 专业人士更多功能; con是标准化程度较低
  • 我不希望性能和安全性有任何差别,因为这两个软件包使用相同的类(AIUI)
  • 用法不应该根本不同; MySQL包应该添加到JDBC包
  • MySQL包中还有更多要知道的内容,因为无论如何你都需要了解JDBC才能使用它

答案 1 :(得分:5)

简单地说:Java(J2SE / J2EE)提供java.sql。*作为连接数据库的标准方法。问题是这些类不知道如何连接到模型中的每个特定数据库,它们面向程序员。

要连接到每个数据库,您需要输入其驱动程序。 Oracle驱动程序将知道如何连接到Oracle数据库,mysql驱动程序将知道如何连接到MySQL。 java.sql中。将知道如何使用每个驱动程序,因此只需使用它就不需要知道每个驱动程序的内部。