为什么将jdbc odbc驱动程序写成jdbc.odbc.JdbcOdbcDriver或sun.jadbc.odbc.JdbcOdbc驱动程序? 名称存储在哪个文件中? 例如。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
jdbcodbc驱动程序和odbc驱动程序的功能是什么?
答案 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将查找可以使用您传递给它的连接字符串的类。