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

ace*_*ace 7 java mysql database-connection

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

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

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

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

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

Tom*_*son 12

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

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

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

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

为了解决你的观点:

  • 亲是更多的功能; 骗局的标准化程度较低
  • 我不希望性能和安全性有任何差别,因为这两个软件包在引擎盖下使用相同的类(AIUI)
  • 用法不应该根本不同; MySQL包应该添加到JDBC包中
  • 在MySQL包中还有更多要知道的,因为无论如何你需要知道JDBC才能使用它


SJu*_*n76 5

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

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