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 连接