关于JDBC驱动程序

问题描述:

我阅读了一本书中使用JDBC API的驱动程序。不清楚解释。我想知道下面的代码使用什么类型的驱动程序。它是4型驱动程序(由数据库供应商提供的java驱动程序)。有人提到没有必要在类型4驱动程序的客户端应用程序中安装。但是我们仍然需要使用类文件com.mysql.jdbc.Driver来使代码正常工作。不知道这里是什么意思。关于JDBC驱动程序

此外,它提到了类型2驱动器使用数据库供应商的驱动程序的二进制代码,它需要安装在客户端。它与下面的例子有什么不同。如果可以粘贴示例代码来访问类型2驱动程序,将会有所帮助。

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
String url = "jdbc:mysql://localhost/coffeebreak"; 
conn = DriverManager.getConnection(url, "username", "password"); 
doTests(); 
conn.close(); 
+0

标准[Java JDBC教程](http://docs.oracle.com/javase/tutorial/jdbc/index.html)可能会有用 – DNA 2012-03-05 23:01:16

+0

非常感谢信息 – Arav 2012-03-06 23:23:32

当你看到那句“没有什么需要安装”中提到的类型4 JDBC驱动程序(尤其是在旧的文档),它指的是什么,除了司机罐子本身需要安装的事实客户机。您需要的驱动程序jar不管是什么,但与其他类型:

  • 类型1:ODBC和ODBC驱动程序将需要在客户端系统上安装
  • 类型2:本地数据库驱动程序会需要在客户机系统上安装
  • 类型3:一个协议代理服务器将需要在客户端系统和数据库之间安装

因此,例如,一个Oracle 2型驱动器(除jdbc jar本身)需要在机器上安装完整的oracle客户机那将运行java代码。

有两点要注意:

  • 由于Java 6(IIRC),拥有现代化的JDBC驱动程序,您不需要的Class.forName声明了。较新的JDBC驱动程序现在会自动注册。

  • 你不能通过查看使用它的代码(这是整个观点),但是mysql jdbc驱动程序是一个4型驱动程序。

  • 由于您无法通过使用驱动程序来区分差异,因此使用类型2驱动程序的示例代码与您在问题中提供的示例代码相同。

  • 供应商提供的所有类型的jdbc驱动程序(类型1除外,因为只有一个实例)功能驱动程序。该类型是指驱动程序如何连接到数据库,而不是由谁来提供。

  • 类型2司机这些天是非常罕见的,国际海事组织,没有人真的使用类型1或3驱动程序了。现在,几乎所有现代的,有生产价值的jdbc驱动程序都是类型4.(我知道oracle提供了类型2和类型4驱动程序,但这是我能想到的唯一一个,并且这两个驱动程序具有相同的功能。)除非您有一些高度的来自数据库供应商的特定建议,否则请使用类型4。

此外,您引用的语言听起来相当过时。 JDBC的基础知识在一段时间内并未发生重大变化,但即使如此,您可能也想查看一本较新的书籍。

+1

我刚刚学会了一个小船。谢谢。 – Synesso 2012-03-05 23:49:17

+0

非常感谢您的信息 – Arav 2012-03-06 23:22:52