JDBC基础教程之驱动设置

1、概述

DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。

对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法是 DriverManager.getConnection。正如名称所示,该方法将建立与数据库的连接。JDBC 允许用户调用 DriverManager 的方法 getDriver、getDrivers 和 registerDriver 及 Driver 的方法 connect。但多数情况下,让 DriverManager 类管理建立连接的细节为上策。

1、跟踪可用驱动程序

DriverManager 类包含一列 Driver 类,它们已通过调用方法 DriverManager.registerDriver 对自己进行了注册。所有 Driver 类都必须包含有一个静态部分。它创建该类的实例,然后在加载该实例时 DriverManager 类进行注册。这样,用户正常情况下将不会直接调用 DriverManager.registerDriver;而是在加载驱动程序时由驱动程序自动调用。加载 Driver 类,然后自动在 DriverManager 中注册的方式有两种:

通过调用方法 Class.forName。这将显式地加载驱动程序类。由于这与外部设置无关,因此推荐使用这种加载驱动程序的方法。以下代码加载类 acme.db.Driver:

Class.forName("acme.db.Driver");

如果将 acme.db.Driver 编写为加载时创建实例,并调用以该实例为参数的 DriverManager.registerDriver(本该如此),则它在 DriverManager 的驱动程序列表中,并可用于创建连接。

通过将驱动程序添加到 java.lang.System 的属性 jdbc.drivers 中。这是一个由 DriverManager 类加载的驱动程序类名的列表,由冒号分隔:初始化 DriverManager 类时,它搜索系统属性 jdbc.drivers,如果用户已输入了一个或多个驱动程序,则 DriverManager 类将试图加载它们。以下代码说明程序员如何在 ~/.hotjava/properties 中输入三个驱动程序类(启动时,HotJava 将把它加载到系统属性列表中):

jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.test.ourDriver;

对 DriverManager 方法的第一次调用将自动加载这些驱动程序类。

注意:加载驱动程序的第二种方法需要持久的预设环境。如果对这一点不能保证,则调用方法 Class.forName 显式地加载每个驱动程序就显得更为安全。这也是引入特定驱动程序的方法,因为一旦 DriverManager 类被初始化,它将不再检查 jdbc.drivers 属性列表。

在以上两种情况中,新加载的 Driver 类都要通过调用 DriverManager.registerDriver 类进行自我注册。如上所述,加载类时将自动执行这一过程。

由于安全方面的原因,JDBC 管理层将跟踪哪个类加载器提供哪个驱动程序。这样,当 DriverManager 类打开连接时,它仅使用本地文件系统或与发出连接请求的代码相同的类加载器提供的驱动程序。

2、建立连接

加载 Driver 类并在 DriverManager 类中注册后,它们即可用来与数据库建立连接。当调用 DriverManager.getConnection 方法发出连接请求时,DriverManager 将检查每个驱动程序,查看它是否可以建立连接。

有时可能有多个 JDBC 驱动程序可以与给定的 URL 连接。例如,与给定远程数据库连接时,可以使用 JDBC-ODBC 桥驱动程序、JDBC 到通用网络协议驱动程序或数据库厂商提供的驱动程序。在这种情况下,测试驱动程序的顺序至关重要,因为 DriverManager 将使用它所找到的第一个可以成功连接到给定 URL 的驱动程序。

首先 DriverManager 试图按注册的顺序使用每个驱动程序(jdbc.drivers 中列出的驱动程序总是先注册)。它将跳过代码不可信任的驱动程序,除非加载它们的源与试图打开连接的代码的源相同。

它通过轮流在每个驱动程序上调用方法 Driver.connect,并向它们传递用户开始传递给方法 DriverManager.getConnection 的 URL 来对驱动程序进行测试,然后连接第一个认出该 URL 的驱动程序。

这种方法初看起来效率不高,但由于不可能同时加载数十个驱动程序,因此每次连接实际只需几个过程调用和字符串比较。

以下代码是通常情况下用驱动程序(例如 JDBC-ODBC 桥驱动程序)建立连接所需所有步骤的示例:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序
String url = "jdbc:odbc:fred";
DriverManager.getConnection(url, "userID", "passwd");

时间: 2024-08-04 05:21:35

JDBC基础教程之驱动设置的相关文章

Java数据库接口JDBC基础教程之驱动设置

基础教程|数据|数据库 DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间.它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接.另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务. 对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法是 DriverManager.getConnection.正如名称所示,该方法将建立与数据库的连接.JDBC 允许用户调用 Dr 用UC每月免费发短信 新浪点点通天气 为什么美

JDBC基础教程_java

本文实例讲述了JDBC基础知识与技巧.分享给大家供大家参考.具体分析如下: 1.什么是JDBC? 通俗来讲JDBC技术就是通过java程序来发送SQL语句到数据库,数据库收到SQL语句后执行,把结果返回给java程序管理. 2.使用JDBC要有什么条件呢? A)目标数据库主机的地址 B)数据库软件在该主机上所占用的端口号 C)登陆数据库用的用户名 D)该用户名的密码 E)连接数据库 3.JDBC技术的原理 我们知道,数据库是有各种类型的,不同的厂商生产的数据库标格和规范是不同的,这时候,如果我们

JDBC基础教程之连接

Connection 对象代表与数据库的连接.连接过程包括所执行的 SQL 语句和在该连接上所返回的结果.一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接.2.1.1 打开连接与数据库建立连接的标准方法是调用DriverManager.getConnection方法.该方法接受含有某个 URL 的字符串.DriverManager 类(即所谓的 JDBC管理层)将尝试找到可与那个 URL 所代表的数据库进行连接的驱动程序.DriverManager 类存有已注册的 Drive

JDBC基础教程之概述

1.1 什么是 JDBCTM? JDBCTM 是一种用于执行 SQL 语句的 JavaTM API(有意思的是,JDBC 本身是个商标名而不是一个缩写字:然而,JDBC常被认为是代表 "Java 数据库连接 (Java Database Connectivity)").它由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序. 有了 JDBC,向各种关系数据库发送 SQL 语句就是一

IMail基础教程(一) DNS设置 - 1

总论概述一.本教程的目的假设本机的IP地址为"192.168.0.48",欲建立一个名为"nanshan@163.net"的可用的E-Mail地址,并可用POP3方式和Web方式收发邮件.二.本教程的安排1.第一节 DNS设置:教你建立"163.net"的DNS记录,以使此域名能被成功解析.2.第二节 IMAIL的安装:告诉你从哪里去下载和怎么样安装IMAIL.3.第三节 建立可用的邮件地址:包括建立邮件服务器和邮件用户.使"nansh

JDBC基础教程之语句

概述 Statement 对象用于将 SQL 语句发送到数据库中.实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement.PreparedStatement(它从 Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来).它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句:PreparedStatement 对象用于执行带或

IMail基础教程(一) DNS设置 - 2

3.如下图所示:二.建立相关的DNS记录1.打开DNS管理器.选"开始→程序→管理工具→DNS".2.为域名"163.net"建立相关的DNS记录.选"正向搜索区域→右键→新建→区域",输入"net":选"net→ 右键→新建→域",输入"163":选"163→右键→新建→主机","名称"一栏保持为空,"IP地址"一栏输入 &q

DOM基础教程之使用DOM设置文本框

 这篇文章主要介绍了DOM基础教程之使用DOM设置文本框的相关资料,需要的朋友可以参考下     1.控制用户输入的字符个数 对于单行文本框和密码输入框,可以利用maxlength属性控制用户输入的字符个数. 对于多行文本,maxlength为自定义属性,其值最多输入的字符的个数,在onkeypress事件发生时则调运返回LessThan()函数返回值,函数如下 <textarea name="comments" id="comments" cols=&quo

如何设置excel2007单元格格式基础教程

  大家好,今天我们小编为大家讲解"如何设置excel2007单元格格式基础教程"首先大家可以使用"设置单元格格式"对话框设置所选单元格内容的格式.您先选中要设置单元格格式的单元格或单元格区域,右单击并选择"设置单元格格式",将弹出"设置单元格格式"对话框,或者点击功能区的"开始"选项卡,找到"字体"."对齐方式"和"数字"3个组,点击3个组中任何