jdbc驱动程序的功能

时间:2014-02-21 09:38:23

标签: java database jdbc odbc

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

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

jdbcodbc驱动程序和odbc驱动程序的功能是什么?

2 个答案:

答案 0 :(得分:1)

  

为什么将jdbc odbc驱动程序写成jdbc.odbc.JdbcOdbcDriver或sun.jadbc.odbc.JdbcOdbc驱动程序?

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

  

名称存储在哪个文件中?

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

  

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

在该示例中,类名硬连线到源代码中。为什么?你需要问那个写它的人!!

  

jdbcodbc驱动程序和odbc驱动程序的功能是什么?

普通ODBC驱动程序提供客户端ODBC API,应用程序可以使用它来调用数据库。驱动程序通过与特定于供应商的本机数据库协议和/或API进行交互来实现该功能。因此,驱动程序隐藏数据库特定的东西,独立于数据库 facade

普通的JDBC驱动程序执行与相同的事情它提供JDBC API。

JDBC-ODBC驱动程序实际上是JDBC和ODBC API之间的“桥梁”。应用程序进行JDBC调用,由驱动程序映射到ODBC类。然后,此驱动程序调用与实际数据库通信的普通ODBC驱动程序。 (如果您的数据库只有ODBC驱动程序,并且您希望从实现使用JDBC的应用程序访问它,则可以使用此方法。)

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

答案 1 :(得分:0)

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