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

发布于 2024-10-30 12:55:35 字数 490 浏览 5 评论 0原文

我是2010年最后一个季度才开始学习Java的。可以说我目前学到的知识还不够,还有很多需要改进的地方。我仍然在开发时进行学习,但我的大部分代码都是来自其他当前工作应用程序的片段。我想我学习语言的方式会影响我了解它的方式。我没有先学习基础知识,而是跳到影响我理解它的高级功能。 (我确实完成了之前的项目任务。)

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

尽管我对此做了一些研究,但对我来说仍然不太清楚。这些与包的区别。

  • 它有优点和缺点吗?
  • 它与性能和安全性有很大的显着性差异吗?
  • 它的使用方式不同吗?
  • 还有更多事情需要了解吗?

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

I've only learned Java last quarter of 2010. I can say the knowledge I gained as of now are not enough and there's a lot of improvement. I still do studying while developing but most of my code is snippet from other current working application. I guess my way of studying the language affect the way I know it. Instead of learning the basic first, I jump up to advanced features that affect how I understand it. (I did advanced to fulfill my previous project tasks.)

I often connect to my MySql database using import java.sql.connection etc. I'm using Eclipse IDE then when I create an instance of Connection/PreparedStatement and I haven't imported the packages. Eclipse will show related Packages that's where mysql.jdbc.* I've encountered.

All though I did some research about it still its not too clear for me. The difference of those to packages.

  • Does it have pros and cons?
  • Does it have a big significance difference with performance and security?
  • Does it use in different way?
  • Is there more things to know?

I know someone here can enlighten me more about this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

摇划花蜜的午后 2024-11-06 12:55:35

引用 com.mysql.jdbc.Connection 的 javadoc

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

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

我想说,如果您可以仅使用标准 JDBC 接口构建应用程序,那就这样做。如果您绝对需要 MySQL 特定的 API 功能,请使用 MySQL 接口。我主要使用 Oracle 工作,在我从事这行的这些年里,我从来没有必要使用任何特定于 Oracle 的界面;使用 JDBC 可以做很多事情。

解决你的观点:

  • 专业是更多功能;缺点是标准化程度较低,
  • 我不希望性能和安全性有任何差异,因为这两个包在底层使用相同的类(AIUI),
  • 用法不应该有根本的不同; MySQL 包应该添加到 JDBC 包
  • 中 MySQL 包中有更多需要了解的内容,因为无论如何您都需要了解 JDBC 才能使用它

To quote from the javadoc for com.mysql.jdbc.Connection:

This interface contains methods that are considered the "vendor extension" to the JDBC API for MySQL's implementation of java.sql.Connection.

So, that class at least builds on top of JDBC to add more features. But it's still JDBC at heart - you're using this class when you use pure JDBC, you just don't see it.

I would say that if you can build your app using only the standard JDBC interfaces, do so. If you absolutely need MySQL-specific API features, then use the MySQL interfaces. I work with Oracle mostly, and in all the years i've been doing it, i've never had to fall back to any Oracle-specific interfaces; there's a huge amount you can do with JDBC.

To address your points:

  • The pro is more features; the con is less standardisation
  • I would not expect any difference with performance and security, since the two packages use the same classes under the hood (AIUI)
  • The usage should not be fundamentally different; the MySQL package should add on to the JDBC package
  • There is more to know in the MySQL package, because you need to know about JDBC to use it anyway
他不在意 2024-11-06 12:55:35

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

要连接到每个数据库,您需要安装其驱动程序。 Oracle驱动程序将知道如何连接到Oracle数据库,mysql驱动程序将知道如何连接到MySQL。 java.sql。会知道如何使用每个Driver,因此只要使用它,您就不需要了解每个Driver的内部原理。

To put it simply: Java (J2SE/J2EE) provides java.sql.* as the standard way to connect to a database. The issue is that these classes do not know really know how to connect to each specific database in the model, they are oriented to the programmer.

To connecto to each database, you need to put in its Driver. The Oracle driver will know how to connect to the Oracle database, the mysql driver will know how to connect to MySQL. java.sql. will know how to use each Driver, so by just using it you do not need to know the internals of each Driver.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文