jdbc驱动程序的功能[关闭]

Posted

技术标签:

【中文标题】jdbc驱动程序的功能[关闭]【英文标题】:Functions of jdbc Driver [closed] 【发布时间】:2014-02-21 09:38:23 【问题描述】:

为什么jdbc odbc驱动写成jdbc.odbc.JdbcOdbcDriver或者sun.jadbc.odbc.JdbcOdbc Driver? 名称存储在哪个文件中? 例如。

 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

以及jdbcodbc驱动和odbc驱动的作用是什么?

【问题讨论】:

en.wikipedia.org/wiki/JDBC_driver 谷歌的所有优秀问题! 【参考方案1】:

为什么jdbc odbc驱动写成jdbc.odbc.JdbcOdbcDriver或者sun.jadbc.odbc.JdbcOdbc Driver?

因为(大概)有两个不同的 JDBC->ODBC 驱动程序类,它们是它们各自的完全限定的类名。 (你的问题有点像问“为什么轮胎叫米其林和固特异?”

名称存储在哪个文件中?

这完全取决于您的应用程序的设计和/或它用于持久性的框架。

例如。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

在该示例中,类名被硬连接到源代码中。为什么?你得问问写它的人!!

以及jdbcodbc驱动和odbc驱动的作用是什么?

普通的 ODBC 驱动程序提供客户端 ODBC API,应用程序可以使用这些 API 来调用数据库。驱动程序通过与特定于供应商的本机数据库协议和/或 API 接口来实现该功能。因此,驱动程序隐藏数据库独立的外观背后的数据库特定的东西。

一个普通的 JDBC 驱动程序做同样的事情除了它提供 JDBC API。

JDBC-ODBC 驱动程序实际上是 JDBC 和 ODBC API 之间的“桥梁”。应用程序进行 JDBC 调用,这些调用由驱动程序映射到 ODBC 类。然后,该驱动程序调用一个普通的 ODBC 驱动程序,该驱动程序与实际数据库对话。 (如果您有一个只有 ODBC 驱动程序的数据库,并且您想从实现为使用 JDBC 的应用程序访问它,则可以使用它。)

有关 JDBC 和 ODBC 的更多信息,请参阅各自的 Wikipedia 页面等。

【讨论】:

【参考方案2】:

当您使用 Class.forName() 时,您会使用给定的完全限定名称创建一个新类。由于您连接到数据库,因此您必须使用特定于您使用的连接类型的数据库驱动程序。之后,我假设您将使用 DriverManager 创建与该资源的连接。 DriverManager 将寻找可以使用您传递给它的连接字符串的类。

【讨论】:

以上是关于jdbc驱动程序的功能[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MsAccess 的 JDBC 驱动程序将在 Unix 上工作 [关闭]

在 redshift jdbc 驱动程序中将结果缓存设置为关闭

我的 spring+hibernate 应用程序没有关闭 jdbc 连接

替代 Apache Commons DbUtils 的轻量级 JDBC 帮助程序库 [关闭]

JDBC连接池[关闭]

JSP/MySQL(JDBC) - Select 语句给出空结果[关闭]