数据库:第11章 数据库访问技术_第1页
数据库:第11章 数据库访问技术_第2页
数据库:第11章 数据库访问技术_第3页
数据库:第11章 数据库访问技术_第4页
数据库:第11章 数据库访问技术_第5页
已阅读5页,还剩83页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章数据库访问技术11.1数据库访问方式11.2SQL/CLI11.3ODBC11.4JDBC11.1数据库访问方式数据库访问方式经历了基于主机终端的单用户/多用户系统基于网络的两层客户机/服务器(C/S)系统基于Web的三层和多层浏览器/服务器(B/S)系统数据库访问接口

所谓数据库访问接口是指分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统数据库访问接口的作用是保证网络中各部件(软件和硬件)之间透明地连接,隐藏网络部件的异构性,尤其保证不同网络、不同DBMS和某些访问语言的透明性:⑴网络透明性⑵服务器透明性⑶语言透明性数据库应用程序的组成部分

一个典型的数据库应用系统可分解成4个组成部分,如图11.1所示主机终端系统

如图所示,在主机终端系统中,不仅所有数据都存储在主机上,而且所有系统组件,包括DBMS,应用程序以及负责向终端发送和接收数据的通信设施等都在一台主机上运行基于网络的C/S系统结构

由于个人计算机(PC)和部门级小型机的成本和维护费用相对较低,更加适合中小型企业或大型企业的部门信息处理,而且能通过网络相互连接,这一趋势导致了基于网络的C/S系统结构的产生客户机/服务器模式的数据库系统

客户机服务器模式(简称C/S)是以网络环境为基础、将计算应用有机地分布在几台计算机中的结构,其中的一个或多个计算机提供服务,称为服务器(Servers),其他的计算机则接受服务,称为客户机(Clients)从用户的角度看,客户机/服务器系统基本由3个部分组成:客户机、服务器、客户和服务器之间的连接1.客户机客户机是指面向最终用户的接口或应用程序,它通过向服务器请求数据服务,然后做必要的处理,将结果显示给用户客户机将大部分数据处理工作留给服务器,让服务器的高档硬件和软件充分施展它们的特长,并且减少了网络上的信息传输量客户机/服务器模式的数据库系统

2.服务器

服务器的主要功能是建立进程和网络服务地址,监听用户的调用,处理客户的请求,将结果返回给客户和释放与客户的连接服务器可以是大型机、中小型机或微机工作站,服务器要求配有高性能处理器

3.连接件

客户机与服务器之间的连接是通过网络连接实现的,对应用系统来说这种连接更多的是一种软件通信工程(如网络协议等)客户机/服务器模式的数据库系统

三层C/S结构

三层C/S结构如图所示,它将应用功能分成表示层、功能层和数据层三部分,分别由客户机,应用服务器和数据库服务器实现。其解决方案是:对这三层进行明确分割,并在逻辑上使其相互独立1.表示层

表示层由客户机实现。表示层是应用的用户接口部分;它担负着用户与应用间的对话功能。它接受用户的输入请求,显示应用输出的数据2.功能层功能层由应用服务器实现。功能层相当于应用的本体,它是应用逻辑处理的核心,是具体业务的实现表示层和功能层之间的数据交互要尽可能简洁应用服务器一般和数据库服务器有密切的数据交往

三层C/S结构

3.数据层

数据层就是DBMS,驻留在数据服务器上,负责管理对数据库数据的存取操作它接受应用服务器提出的SQL请求,完成数据的存储、访问和完整性约束检查等。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统(RDBMS)因此,一般从功能层传送到数据层大都要求使用SQL语言与二层C/S结构相比,三层C/S结构有明显的优点:伸缩性好,具有灵活的硬件系统构成;提高了程序的可维护性,各层相对独立,可以并行开发;有利于严密的安全管理三层C/S结构

基于WEB的B/S结构

浏览器/服务器模式的数据库体系是利用Web服务器作为数据库操作的中间层,将客户机/服务器模式的数据库结构与Web密切结合,从而形成具有三层或多层Web结构的浏览器/服务器模式的数据库体系(见图)前端采用基于瘦客户机的浏览器技术(Navigator或IE),通过WWW服务器(Microsoft的IIS或NetscapeFastTrack)及中间件访问数据库基于WEB的B/S结构

中间件驻留在WEB服务器上,负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务数据库服务器管理数据库中的数据,客户发出HTTP请求,Web服务器以HTML页面向用户返回查询结果由此可见,WebServer承担了传接任务中的很大一部分,而Client端却是很少的一部分,这就是所谓的“胖服务器/瘦客户端”模式中间件所谓中间件(Middleware)是分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统在C/S环境中,中间件同时存在于客户端和服务器端,负责客户和服务器间透明的请求和回答交换。在分布式环境中,中间件允许不同服务器之间相互通信如,数据库网关中间件的作用

所谓中间件(Middleware)是分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统在C/S环境中,中间件同时存在于客户端和服务器端,负责客户和服务器间透明的请求和回答交换。在分布式环境中,中间件允许不同服务器之间相互通信如数据库网关11.2SQL/CLISQL/CLI是为了解决RDBMS间互访而提出的一个数据库访问接口标准1989年,Microsoft、Lotus、Sybase和DEC等四家公司联合提出一个称为SQL互连(SQLConnectivity)的数据库访问接口规范,定义了一批访问数据库的函数1990年,数据库厂商集团SAG(SQLAccessGroup)接受SQL互连作为其调用级接口(CallLevelInterface,简称CLl)规范的基础,并于1992年发布了CLI的初步规范1995年,SQL/CLI被ISO正式批准,作为SQL-92的一个附件称为SQL-92/CLI或CLI-95

目前,主要的RDBMS产品一般都支持SQL/CLISQL/CLI基本原理

SQL/CLI分为访问接口和访问实现两大部分访问接口是一组访问数据库的API函数,SQL/CLI规范就是对这组函数的定义SQL/CLI基本原理

图11-8是通过SQL/CLI访问数据源的示意图CLI应用程序CLI驱动程序管理器CLI驱动程序数据库图11-8通过SQL/CLI访问数据源示SQL/CLI基本原理环境句柄连接句柄语句句柄非数据库数据源和非SQL数据库的访问处置DBMS在SQL语言和系统功能上的差异SQL/CLI应用程序的处理过程

应用程序申请分配环境句柄,建立对话环境应用程序申请分配连接句柄,并与指定数据源建立连接如果应用程序所提供的登录信息(例如用户标识、口令等)得到数据源确认,则连接成功应用程序申请分配语句句柄,为向数据源发送命令或SQL语句做好准备如果需要,应用程序可以通过语句句柄向数据源发送命令,查询数据模式或其他元数据,作为编写/生成SQL语句的参考应用软件通过语句句柄向数据源发送SQL语句,在执行后,返回执行结果或消息如果语句执行结束,可释放语句句柄如果应用程序关闭或结束,必须依序先释放所有语句句柄,再释放所有连接句柄,最后释放环境句柄SQL/CLI函数的一般形式及其参数

SQL/CLI函数由函数名及其形式参数构成,函数名—般冠以SQL例如:

SQL_Connect(…)就是表示要求与数据源建立连接的函数名函数名后的圆括号内可带有若干形式参数SQL/CLI函数的一般形式及其参数

SQL/CLI函数参数有下列4种类型:输入参数:供应用程序在调用函数时向函数的可执行代码传送数据之用输出参数:供函数的可执行代码在函数调用时向应用程序返回数据之用延迟输入参数:用来向SQL语句传送动态参数。在调用函数时,只向函数的可执行代码传送实参的地址,而参数值在函数执行过程中到实参地址取用延迟输出参数:用来向应用程序返回查询结果。查询结果不可能在函数调用时立即返回,须在SQL语句执行后才能赋予输出参数申请句柄句柄是内存工作区的标识,在操作之前,必须先申请分配相应的句柄申请分配句柄可调用函数SQLAllocHandle()下面给出申请各种句柄的C语言函数:申请句柄(1)申请环境句柄

SQLAllocHandle(SQL_HANDLE_ENV,&EnvHandle)其中:SQL_HANDLE_ENV是个输入形参,表示申请环境句柄,ENV是Environment的缩写。第二个形参&EnvHandle是输出形参,表示函数调用后返回的环境句柄存放的地址,即环境句柄指针

申请句柄

(2)申请连接句柄

SQL_AllocHandle(SQL_HANDLE_DBC,

EnvHandle,&ConnHandle)其中:第一个形参SQL_HANDLE_DBC是输入形参,表示申请连接句柄;第二个形参EnvHandle也是输入形参,它是一个环境句柄,表示分配的连接句柄所处的环境;第三个形参&ConnHandle是输出形参,表示函数调用后返回的连接句柄存放地址申请句柄(3)申请语句句柄

SQL_AllocHandle(SQL-HANDLE-STMT,

ConnHandle,&StmtHandle)其中:第一个形参SQL-HANDLE-STMT是输入形参,表示申请语句句柄;第二个形参ConnHandle也是输入形参,表示连接句柄,表示分配的语句句柄所在的连接环境;第三个形参&StmtHandle是输出形参,表示返回的语句句柄指针建立数据源连接

在依次申请到环境句柄和连接句柄后,就可以调用SQLConnect()函数建立与数据源的连接,函数的具体形式如下:

SQL_Connect(ConnHandle,SvrName,Lenl,

UsrName,Len2,Auth,Len3)其中:第一个形参是连接句柄,表示连接的环境。SvrName是服务器名,即拟连接的数据源名;UsrName是用户名,Auth是鉴别(authenticate)用户的信息,例如口令。这两个参数供登录数据源用。SvrName、UsrName、Auth都是可变长字符串,在其后面分别附有字符串长度参数Lenl、Len2、Lan3在有些语言中,例如C语言,可变长字符串以’\0’字符(即NULL)结束,则可在字符串长度参数中填以SQL_NTS。NTS是NullTerminatedString的缩写SQL语句的执行在与数据源建立连接后,应用程序即可以申请语句句柄有了语句句柄就可以准备和执行SQL语句SQL语句有先准备后执行和直接执行2种执行方式SQL语句的执行

(1)先准备后执行这与带动态参数的动态SQL语句的执行过程类似,先调用SQLPrepare()函数准备SQL语句。函数的形式如下:

SQLPrepare(StmtHandle,*Stmt,Len)其中,Stmt是语句字符串的指针,Len是字符串的长度,在C语言中填以SQL-NTS。SQLPrepare()函数将SQL语句提交给SQL数据库服务器或SQL解释器,做好执行的准备,例如语法分析,然后用SQLPrepare()中的同一语句句柄调用执行函数:

SQLExecute(StmtHandle)一次准备,可以多次执行SQL语句的执行(2)直接执行直接执行的动态SQL类似,可以直接调用下面的函数:

SQLExecDirect(StmtHandle,*Stmt,Len)其中,参数与SQLPrepare()函数一样,不再重复介绍SQL语句的执行无论是先准备后执行,还是直接执行,SQL语句中都可以包含动态参数。动态参数在SQL语句中以问号‘?’作为占位符,在执行时由函数从应用程序的指定地址取出动态参数当前值以取代‘?’,这种方法叫参数绑定(Parameterbinding)另一种办法是在执行时用SQLPutData()例程接受应用程序指定的参数值动态参数对于一次准备多次执行特别有用,即可以用不同的参数值执行同一SQL语句

SQL语句的执行为了将SQL语句查询所得的元组集,逐个赋予应用程序的变量,在嵌套SQL中使用了游标机制,在嵌套SQL中,游标用OPEN语句打开。SQL/CLI也采用游标的概念,在SQL/CLI中,游标在执行SQLExecute()或SQLExecDirect()函数时自动打开,用SQLFetch()函数取数,每调用一次SQLFetch()函数,取一个元组,游标也前移一个位置如果不加说明,游标只能前移,如果SQL语句加上SQL-SCROLLABLE属性,则游标可以前移或后退。在此情况下,可调用SQLFetchScroll()函数,将游标移到任何位置

SQL语句的执行SQLFetchScroll()的参数有:生成游标的SQL语句的语句句柄、标志和偏移量标志有:PRIOR(后退一位)、NEXT(前移一位)、FIRST(移至第一个元组)、LAST(移至最后一个元组)还有ABSQLUTE、RELATIVE两个标志。ABSQLUTE表示按绝对位置移动,RELATIVE表示相对于当前位置移动。这两个标志要与偏移量结合起来使用。设偏移量为n或-n,则ABSQLUTEn表示移至第n个元组,ABSQLUTE+表示移至倒数第n个元组;RELATIVEn表示从当前位置前移n个位置,RELATIVE-n表示从当前位置后退n个位置

SQL/CLI描述符区

应用程序要向数据源提供动态参数,数据源要向应用程序提供查询结果描述数据的数据称为描述符(descriptors),它们主要包含被交换数据的元数据及存放地址,描述符区(descriptorarea)是存放描述这些数据的数据用的在SQL/CLI中,有2种类型的描述符(1)参数描述符(2)行描述符SQL/CLI诊断信息

为了使应用程序或用户知道CLI函数执行情况,SQL/CLI提供了比较丰富的诊断手段。每个CLI函数不管执行成功与否,都要送回一个returncode返回码有下列3种:SQL-SUCCESS:表示函数成功地执行SQL-SUCCESSWITH-INFO:表示函数虽成功地执行尾部被截断等SQL-ERROR:表示函数在执行过程中发生错误ODBC是“开放数据库互连”(OpenDatabaseConnectivity)的简称。ODBC是Microsoft公司提出的、被业界广泛接受的应用程序通用编程接口(API)标准,它以X/Open和ISO/IEC的调用级接口(CLI)规范为基础,用于对数据库的访问ODBC实际上是一个数据库访问函数库,使应用程序可以直接操纵数据库中的数据,基于ODBC的数据库应用程序结构如图所示

11.4ODBC基于ODBC的数据库应用程序结构基于ODBC的数据库应用程序结构应用程序应用程序应用程序……公共接口API网络软件SYBASEDB2ORACLESQLServerFoxproODBC技术为应用程序提供了一套CLI(CallLevelInterface,调用层接口)函数库和基于DLL(DynamicLinkLibrary,动态链接库)的运行支持环境使用ODBC开发数据库应用程序时,在应用程序中调用标准的ODBC函数和SQL语句,通过可加载的驱动程序将逻辑结构映射到具体的DBMS或者应用系统所使用的系统

ODBC体系结构ODBC结构由四个主要成分构成:⑴

应用程序:用宿主语言和ODBC函数编写的应用程序用于访问数据库。⑵

驱动程序管理器(DriverManager):为应用程序加载、调用和卸载DB驱动程序

⑶

驱动程序(DBMSDriver):处理ODBC函数,向数据源提交用户请求执行的SQL语句

⑷

数据源(DataSouree):是DB驱动程序与DBS之间连接的命名ODBC体系结构如图11-所示:

ODBC体系结构

ODBC体系结构作业P26911.211.811.10ODBC的API一致性级别分为三级:核心级、扩展1级和扩展2级核心级包括最基本的功能,包括分配、释放环境句柄、数据库连接、执行SQL语句等,核心级函数能满足最基本的应用程序要求。扩展1级在核心级的基础上增加了一些函数,通过它们可以在应用程序中动态地了解表的模式,可用的概念模型类型及它们的名称等扩展2级在扩展1级的基础上又增加了一些函数,通过它们可以了解到关于主关键字和外来关键字的信息、表和列的权限信息、数据库中的存储过程信息等,并且还有更强的游标和并发控制功能

ODBCAPIODBC接口函数的主要功能包括:⑴分配和释放内存。

⑵连接。

⑶执行SQL语句。

⑷接收结果。

⑸事务控制。

⑹错误处理和其他事项。

ODBC接口函数ODBC的基本流程控制是:初始化SQL:在初始化阶段分配环境,包括分配环境句柄、连接句柄和语句句柄,与服务器连接;在SQL处理阶段执行SQL语句和检索操作;在终止阶段释放语句句柄、环境句柄、连接句柄,与服务器断开。

ODBC的基本流程ODBC应用程序的主要功能是:调用ODBC函数,递交SQL语句给DBMS,检索出结果,并进行处理。应用程序要完成ODBC外部接口的所有工作。ODBC应用程序主要完成以下任务:①连接数据库;②向数据源发送SQL语句;③为SQL语句执行结果分配存储空间④读取结果;⑤处理错误;⑥向用户提交处理结果;⑦请求事务的提交和回退操作;⑧断开与数据源的连接;⑨定义所读取的数据格式。

ODBC应用程序

ODBC驱动程序管理器是一个动态链接库(DLL),用于连接各种DBS的DBMS驱动程序(如Oracle、Foxpro、Sybase等驱动程序),管理应用程序和DBMS驱动程序之间的交互作用当一个应用程序与多个数据库连接时,驱动程序管理器的作用是保证应用程序能够正确地调用这些DBS的DBMS,实现数据访问,并把来自数据源的数据传送绐应用程序驱动程序管理器的主要功能如下:①为应用程序加载DBMS驱动程序;②检查ODBC调用参数的合法性和记录ODBC函数的调用③为不同驱动程序的ODBC函数提供单一的入口:④调用正确的DBMS驱动程序;⑤提供驱动程序信息。

ODBC驱动程序管理器

从ODBC体系结构可以看出,应用程序不能直接存取数据库,其各种操作请求要通过ODBC的驱动程序管理器提交给DBMS驱动程序,实现对数据源的各种操作,数据库的操作结果也通过驱动程序返回给应用程序ODBC应用程序通过调用驱动程序所支持的函数来操纵数据库ODBC驱动程序也是一个动态链接库(DLL)

ODBC驱动程序

当应用程序调用函数SQLConnect()时,驱动程序管理器加载相应的ODBC驱动程序根据应用程序的要求,ODBC驱动程序完成以下任务:①建立应用程序与数据源的连接;②向数据源提交用户请求执行的SQL语句;③对从数据源返回的数据进行格式和类型转换;④把处理结果返回给应用程序;⑤将执行过程中DBS返回的错误转换成ODBC定义的标准错误代码给应用程序;⑥根据需要定义和使用游标。

ODBC驱动程序

ODBC规范定义的驱动程序有两种类型:单层驱动程序和多层驱动程序。但是从应用程序角度来讲,所使用的ODBC都是一样的。

ODBC驱动程序

(1)单层驱动程序单层驱动程序不仅要处理ODBC函数调用,还要解释执行SQL语句,即执行DBMS的功能。所以,单层驱动程序实际上具备一个DBMS的功能例如:XbaseDBS的驱动程序就属于这种基于单层ODBC驱动程序的ODBC结构如图所示

ODBC驱动程序

ODBC驱动程序

ODBC数据库应用程序驱动程序管理器单层驱动程序(包含数据库引擎)数据库文件(*.DBF)工作站工作站文件服务器图网络环境下基于单层驱动程序的ODBC结构(2)多层驱动程序多层驱动程序只处理应用程序的ODBC函数调用和数据转换,它将SQL语句传递给数据源服务器,由DBMS解释执行SQL语句,实现用户的各种操作请求例如,DB2,SQLServer驱动程序都属于这种多层驱动程序与DBMS的功能是分离的,基于多层ODBC驱动程序的ODBC结构适合于C/S结构,如图11.1.2所示客户端软件由ODBC数据库应用程序、驱动程序管理器、多层驱动程序和客户端网络支撑软件组成,服务器端由数据库引擎、数据库文件和服务器网络软件组成

ODBC驱动程序

(2)多层驱动程序基于多层驱动程序的ODBC结构的另一种配置是使用数据库网关(Gateway)在这种配置下,驱动程序把接受到的SQL请求传送给数据库网关,再由数据库网关上的驱动程序把这些请求传递给DBMS如图11.1.3所示,在三层结构中,客户并不直接与DBMS联系,而是与网关联系,而网关通常可以和多个不同的DBMS联系,这就是三层结构的意义所在

ODBC驱动程序

ODBC驱动程序

客户端网络数据库服务器操作结果服务器网络支撑软件数据库引擎数据库文件(*.DBF)图11.1.2基于多层驱动程序的ODBC结构(两层结构)ODBC数据库应用程序客户端网络支撑软件服务器网络支撑软件数据库网关驱动程序管理器驱动程序数据库引擎数据库图11.1.3基于网关机制的多层驱动程序的ODBC结构(三层结构)ODBC数据库应用程序驱动程序管理器多层驱动程序客户端网络支撑软件客户浏览器网络www服务器数据库服务器(3)多层驱动程序与单层驱动程序多层驱动程序与单层驱动程序的差别不仅仅是驱动程序是否具有数据库引擎的功能,二者的效率也有很大的差异由于基于单层驱动程序的应用程序把存放数据库的服务器作为文件服务器使用,在网络中传输的是整个数据库文件,所以网络的数据通信量很大而采用多层驱动程序的应用程序使用C/S结构,在数据库服务器上实现对数据库的各种操作,在网络中传输的只是用户请求和数据库处理的结果,从而使网络的通信量大大减少这不仅减轻了网络的负担,而且还均衡了服务器和客户机的负载,从而提高了应用程序的运行效率,这也是C/S结构的优点

ODBC驱动程序

ODBC数据源(DataSourceName,简记为DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名在ODBC连接中,用数据源名代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接

ODBC数据源管理

ODBC数据源分为以下三类:(1)用户数据源:用户创建的数据源,称为“用户数据源”。此时只有创建者才能使用,并且只能在所定义的机器上运行。任何用户都不能使用其他用户创建的用户数据源。

(2)系统数据源:所有用户和在WindowsNT下以服务方式运行的应用程序均可使用系统数据源(3)文件数据源:文件数据源是ODBC3.0以上版本增加的一种数据源,可用于企业用户,ODBC驱动程序也安装在用户的计算机上创建ODBC数据源的最简单方法是使用ODBC驱动程序管理器

ODBC数据源管理

从ODBC的体系结构可以看出,ODBC有下列三个特性:(1)ODBC是一个调用层接口(2)ODBC定义基于标准的SQL语法(3)ODBC提供一个驱动程序管理器来管理并同时访问多个DBMS系统

ODBC的特性

JDBC是JavaDatabaseConnectivity的缩写,是JavaSoft公司设计的Java语言数据库访问APIJDBC目的在于使Java程序与数据库服务器的连接更加方便11.4JDBCJDBC体系结构Java程序通过JDBCAPI访问JDBC驱动程序管理器(DriverManager),驱动程序管理器再通过JDBCDriverAPI访问不同的JDBC驱动程序,从而实现对不同类型数据库的访问包含两部分:面向应用系统开发人员的JDBCAPI面向驱动程序开发人员的JDBCDriverAPIJDBCAPIJDBCAPIJava应用JDBC管理器JDBCAP1JDBC驱动程序AP1JDBC-Net驱动程序JDBC-ODBC桥驱动程序JDBC-Net驱动程序驱动程序A驱动程序BJDBC实现替代数据库访问专用协议…………已有协议图13.8JDBCDriverAPI和底层数据库的连接JDBCAPI驱动程序管理管理器驱动程序连接语句结果集预处理语句可调用语句结果集结果集图13.9应用程序层和驱动程序的连接驱动程序层应用程序层JDBC驱动程序的类型:

JDBC-ODBC桥驱动程序本地API驱动程序网络协议纯Java驱动程序本地协议纯Java驱动程序JDBC驱动程序JDBC驱动程序应用程序JDBC基于Java的接插驱动程序DBMS具体协议DBMS服务器应用程序JDBC驱动程序管理器ODBC驱动程序管理器ODBC驱动程序库ODBC数据库本地APIJDBC-ODBC桥JDBC驱动程序应用程序JDBC独立于DBMS的协议驱动程序协议处理器协议翻译器DBMS客户机库DBMS服务器网络协议纯Java驱动程序独立于DBMS的协议应用程序JDBCDBMS厂家客户机库(C)DBMS服务器本地协议纯Java驱动程序具体协议JDBCURL是JDBC用来标识数据库的方法,JDBC驱动程序管理器根据JDBCURL选择正确的驱动程序,由驱动程序识别数据库并与之建立连接JDBCURL的标准语法由三部分组成:

jdbc:<子协议>:<子名称>jdbc:协议名<子协议>:驱动程序名或数据库连接机制的名称<子名称>:标识数据库的方法。子名称可以依不同的子协议而变化JDBCURL例:

jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=“…”;

DatabaseName=DemoDBJDBCURL面向程序员JDBCAPIJava程序员通过调用此API实现连接数据库、执行SQL语句并返回结果集等编程数据库的能力,主要是由一系列的接口定义构成

面向程序员JDBCAPI1)java.sql.DriveManager:该接口主要定义了用来处理装载驱动程序并且为创建新的数据库连接提供支持

2)java.sql.Connection:该接口主要定义了实现对某一种指定数据库连接的功能

3)java.sql.Statement:该接口主要定义了在一个给定的连接中作为SQL语句执行声明的容器以实现对数据库的操作,它主要包含有如下两种子类型

4)java.sql.PreparedStatement:该接口主要定义了用于执行带或不带IN参数的预编译SQL语句

5)java.sql.CallableStatement:该接口主要定义了用于执行数据库的存储过程的调用

6)java.sql.ResultSet:该接口主要定义了用于执行对数据库的操作所返回的结果集

Statement类之间的继承关系数据库厂商必须提供相应的驱动程序并实现JDBCAPI所要求的基本接口每个数据库系统厂商必须提供对DriverManager、Connection、Statement、ResultSet等接口的具体实现,从而最终保证Java程序员通过JDBC实现对不同的数据库操作面向数据库厂商的JDBCDriverAPIJDBC中的主要类(包java.sql)

驱动程序相关Driver,DriverManager

连接数据库Connection执行SQL语句Statement,PreparedStatement,CallableStatement

JDBC中的主要类(包java.sql)结果集ResultSet

数据库操作错误SQLException,SQLWarning数据库及结果集

DatabaseMetaDate,ResultSetMetaData时间日期Date,Time,Timestamp

其它Types,Transaction

JDBC数据库应用程序完整的JDBC数据库应用程序一般包括如下步骤:载入JDBC数据库驱动程序建立数据库连接执行SQL语句取结果集和结果信息提交或撤消事务关闭数据库JDBC数据库应用程序载入JDBC数据库驱动程序Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);连接数据库

Stringurl=“jdbc:odbc:studentdb”;Connectioncon=DriverManager.getConnection(url,”user”,”pass”);JDBC数据库应用程序取得数据库描述信息:取得DatabaseMetaData对象来了解数据源的信息

DatabaseMetaData

dbma=con.getMetaData();DatabaseMetaData对象有很多方法:取得数据库的基本信息

getURL(),getUserName(),getDatabaseProduceName(),getDatabaseProduceVersion(),isReadOnly(),getDriverName(),getDriverVersion()取得表信息

getTabels(…)

JDBC数据库应用程序取得数据库描述信息

取得列的信息

getColumns()取得索引信息

getIndexInfo()

JDBC数据库应用程序Statement对象所有SQL语句都是通过Statement或其子类(PreparedStatement,CallableStatement)对象实现,用于一般SQL查询语句的执行创建:调用Connection对象的createStatement方法

Statementstmt=con.createStatement();

JDBC数据库应用程序Statement对象执行:executeQuery(),executeUpdate(),execute()执行Select语句: Stringtsql=“selectname,agefromtable1”;

ResultSet

rs=stmt.executeQuery(tsql);执行非select语句:Stringtsql=“UpdateSsetage=age+1Where…”

int

nRet=stmt.executeUpdate(tsql);execute()方法用于:返回多个结果集、多个更新集关闭:close()

stmt.close();JDBC数据库应用程序PreparedStatement

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论