JDBC基础教程之连接

Connection 对象代表与数据库的连接。连接过程包括所执行的 SQL 语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。2.1.1 打开连接与数据库建立连接的标准方法是调用DriverManager.getConnection方法。该方法接受含有某个 URL 的字符串。DriverManager 类(即所谓的 JDBC管理层)将尝试找到可与那个 URL 所代表的数据库进行连接的驱动程序。DriverManager 类存有已注册的 Driver 类的清单。当调用方法 getConnection 时,它将检查清单中的每个驱动程序,直到找到可与URL 中指定的数据库进行连接的驱动程序为止。Driver 的方法connect 使用这个 URL来建立实际的连接。

用户可绕过 JDBC 管理层直接调用 Driver 方法。这在以下特殊情况下将很有用:当两个驱动器可同时连接到数据库中,而用户需要明确地选用其中特定的驱动器。但一般情况下,让 DriverManager 类处理打开连接这种事将更为简单。

下述代码显示如何打开一个与位于 URL "jdbc:odbc:wombat" 的数据库的连接。所用的用户标识符为 "oboy" ,口令为 "12Java":

String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "oboy", "12Java");

2.1.2 一般用法的 URL由于 URL 常引起混淆,我们将先对一般 URL 作简单说明,然后再讨论 JDBC URL。

URL(统一资源定位符)提供在 Internet 上定位资源所需的信息。可将它想象为一个地址。URL 的第一部份指定了访问信息所用的协议,后面总是跟着冒号。常用的协议有"ftp"(代表“文件传输协议”)和 "http" (代表“超文本传输协议”)。如果协议是 "file",表示资源是在某个本地文件系统上而非在 Internet 上(下例用于表示我们所描述的部分;它并非 URL 的组成部分)。

ftp://javasoft.com/docs/JDK-1_apidocs.zip
http://java.sun.com/products/jdk/CurrentRelease
file:/home/haroldw/docs/books/tutorial/summary.html

URL 的其余部份(冒号后面的)给出了数据资源所处位置的有关信息。如果协议是 file,则 URL 的其余部份是文件的路径。对于 ftp 和http 协议,URL 的其余部份标识了主机并可选地给出某个更详尽的地址路径。例如,以下是 JavaSoft 主页的URL。该 URL 只标识了主机:

http://java.sun.com从该主页开始浏览,就可以进到许多其它的网页中,其中之一就是JDBC 主页。JDBC 主页的 URL 更为具体,它看起来类似: http://java.sun.com/products/jdbc

2.1.3 JDBC URL

JDBC URL 提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。实际上,驱动程序编程员将决定用什么 JDBC URL 来标识特定的驱动程序。用户不必关心如何来形成JDBC URL;他们只须使用与所用的驱动程序一起提供的 URL 即可。JDBC 的作用是提供某些约定,驱动程序编程员在构造他们的 JDBC URL 时应该遵循这些约定。

由于 JDBC URL 要与各种不同的驱动程序一起使用,因此这些约定应非常灵活。首先,它们应允许不同的驱动程序使用不同的方案来命名数据库。例如, odbc 子协议允许(但并不是要求) URL 含有属性值。第二,JDBC URL 应允许驱动程序编程员将一切所需的信息编入其中。这样就可以让要与给定数据库对话的 applet 打开数据库连接,而无须要求用户去做任何系统管理工作。第三, JDBC URL 应允许某种程度的间接性。也就是说,JDBC URL 可指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为实际的名称。这可以使系统管理员不必将特定主机声明为JDBC 名称的一部份。网络命名服务(例如 DNS、 NIS 和DCE )有多种,而对于使用哪种命名服务并无限制。JDBC URL 的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:

jdbc:< 子协议 >:< 子名称 >

JDBC URL 的三个部分可分解如下: jdbc ─ 协议。

JDBC URL 中的协议总是 jdbc。

<子协议> ─ 驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是 "odbc",该名称是为用于指定 ODBC 风格的数据资源名称的 URL 专门保留的。例如,为了通过JDBC-ODBC 桥来访问某个数据库,可以用如下所示的 URL:

jdbc:odbc:fred

本例中,子协议为 "odbc",子名称 "fred" 是本地ODBC 数据资源。

如果要用网络命名服务(这样 JDBC URL 中的数据库名称不必是实际名称),则命名服务可以作为子协议。例如,可用如下所示的 URL :jdbc:dcenaming:accounts-payable本例中,该 URL 指定了本地 DCE 命名服务应该将数据库名称 "accounts-payable" 解析为更为具体的可用于连接真实数据库的名称。<子名称> ─ 一种标识数据库的方法。子名称可以依不同的子协议而变化。它还可以有子名称的子名称(含有驱动程序编程员所选的任何内部语法)。使用子名称的目的是为定位数据库提供足够的信息。前例中,因为 ODBC 将提供其余部份的信息,因此用 "fred" 就已足够。然而,位于远程服务器上的数据库需要更多的信息。例如,如果数据库是通过Internet 来访问的,则在 JDBC URL 中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准 URL 命名约定://主机名:端口/子协议假设 "dbnet" 是个用于将某个主机连接到 Internet 上的协议,则 JDBC URL 类似:

jdbc:dbnet://wombat:356/fred 2.1.4 "odbc" 子协议子协议 odbc 是一种特殊情况。它是为用于指定 ODBC 风格的数据资源名称的 URL 而保留的,并具有下列特性:允许在子名称(数据资源名称)后面指定任意多个属性值。odbc 子协议的完整语法为: jdbc:odbc:< 数据资源名称 >[;< 属性名 >=< 属性值 >]*

因此,以下都是合法的 jdbc:odbc 名称:

jdbc:odbc:qeor7jdbc:odbc:wombat
jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
jdbc:odbc:qeora;UID=kgh;PWD=fooey

2.1.5 注册子协议驱动程序编程员可保留某个名称以将之用作 JDBC URL 的子协议名。

当 DriverManager 类将此名称加到已注册的驱动程序清单中时,为之保留该名称的驱动程序应能识别该名称并与它所标识的数据库建立连接。例如,odbc 是为 JDBC- ODBC 桥而保留的。

示例之二,假设有个 Miracle 公司,它可能会将 "miracle" 注册为连接到其Miracle DBMS 上的JDBC 驱动程序的子协议,从而使其他人都无法使用这个名称。JavaSoft 目前作为非正式代理负责注册 JDBC 子协议名称。要注册某个子协议名称,请发送电子邮件到下述地址:

jdbc@wombat.eng.sun.com

时间: 2024-08-25 03:19:22

JDBC基础教程之连接的相关文章

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

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

MS SQL基础教程:连接与断开服务器

在Enterprise Manager 的SQL Server Group 中用左键单击所要连接的服务器,或在所要启动的服务器上单击右键后从快捷菜单中选择"Connect" 项,即可启动.如果在注册服务器时选择了在SQL Server 启动时输入账号和口令选项(如图5-8 所示),则会提示输入它们,如图5-12 所示. 在所要断开的服务器上单击右键后从快捷菜单中选择"Disconnect" 选项就可以断开服务器.在关闭Enterprise Manager 时,也会自

JDBC基础教程_java

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

JDBC基础教程之概述

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

JDBC基础教程之驱动设置

1.概述 DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间.它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接.另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务. 对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法是 DriverManager.getConnection.正如名称所示,该方法将建立与数据库的连接.JDBC 允许用户调用 DriverManager 的方法 getDriver.getDr

JDBC基础教程之语句

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

php操作MongoDB基础教程(连接、新增、修改、删除、查询)_php实例

复制代码 代码如下: //连接localhost:27017$conn = new Mongo(); //连接远程主机默认端口$conn = new Mongo('test.com'); //连接远程主机22011端口$conn = new Mongo('test.com:22011'); //MongoDB有用户名密码$conn = new Mongo("mongodb://${username}:${password}@localhost") //MongoDB有用户名密码并指定数

asp.net连接sql数据库实例基础教程

asp.net|基础教程|教程|sql数据库 以下代码演示了如何使用asp.net连接sql server2000数据库并操作的代码实例, 和asp.net初学者分享一下. asp.net基础教程,连接SQL Server2000数据库实例代码分析: 以下为代码内容:<%@ Import Namespace="System.Data" %> <%@ Import NameSpace="System.Data.SqlClient" %> <

MS SQL基础教程:数据库中的连接查询

数据库中的各个表中存放着不同的数据,用户往往需要用多个表中的数据来组合.提炼出所需要的信息.如果一个查询需要对多个表进行操作,就称为连接查询.连接查询的结果集或结果表,称为表之间的连接连接.查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征. 连接查询分为等值连接查询.非等值连接查询.自连接查询.外部连接查询和复合条件连接查询. 10.3.1 等值与非等值连接查询 表之间的连接是通过相等的字段值连接起来的查询称为等值连接查询.可以用两种方式来指定连接条件.下面例