第11章JBuilder数据库编程.docx

上传人:b****7 文档编号:9827548 上传时间:2023-02-06 格式:DOCX 页数:33 大小:159.08KB
下载 相关 举报
第11章JBuilder数据库编程.docx_第1页
第1页 / 共33页
第11章JBuilder数据库编程.docx_第2页
第2页 / 共33页
第11章JBuilder数据库编程.docx_第3页
第3页 / 共33页
第11章JBuilder数据库编程.docx_第4页
第4页 / 共33页
第11章JBuilder数据库编程.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

第11章JBuilder数据库编程.docx

《第11章JBuilder数据库编程.docx》由会员分享,可在线阅读,更多相关《第11章JBuilder数据库编程.docx(33页珍藏版)》请在冰豆网上搜索。

第11章JBuilder数据库编程.docx

第11章JBuilder数据库编程

第11章JBuilder数据库编程

编程语言的一个重要功能就是处理数据,Java语言作为网络世界中最流行的编程语言自然也不例外,但面对的情况将更为复杂。

作为一种具有平台无关性的网络语言,Java语言需要处理大量分布在不同硬件平台上、格式各异的数据资源,因此Java语言对数据库的支持是影响Java语言生命力的一个重要因素。

为支持针对数据库的操作,Java语言提供了一个非常有效的数据库开发工具——JDBC(JavaDataBaseConnectivity)。

11.1数据库概述

目前,大型数据库管理系统已在国民经济的各个行业中得到了广泛的使用,大到整个国家的金融和税务系统,小到酒店的客房管理,借助数据库的帮助,可以很方便地实现信息的存储和使用,极大地方便了我们的工作和生活。

11.1.1数据库的基本概念

所谓数据库,就是一个存储并管理信息或数据的通用容器。

从逻辑层面上看,可以将它理解为一系列的数据结构。

通过访问这些数据结构,可以查询或修改数据库中的信息。

数据库具有如下的特点:

Ø数据共享率:

共享是指多用户、多种应用、多种语言相互覆盖的共享数据集合。

Ø数据结构化:

按照某种数据模型,将整个组织的全部数据组织成一个结构化的数据整体。

Ø数据独立性:

具有较高的数据和程序的独立性。

Ø数据冗余度:

数据存储不必重复,节省存储空间并保证了数据的一致性。

11.1.2数据库模型

数据库系统实际采用的数据模型主要有:

层次模型、网状模型和关系模型。

其中,层次模型是最早使用的一种模型,它将使用的数据都组织成树型结构。

整个数据树只有一个根节点,并从根节点开始不断地扩展,每个分节点都可以有若干分支,但只能有一个上层节点,如图11-1(a)所示。

这种简单的构成方式也使得它不能表示复杂的数据联系。

网状模型将所有的数据组织成网状结构,其中的每个节点都可以有多个上层节点,且根节点数目可以多于一个,它可表示较为复杂的数据关联,但程序编写较为复杂,如图11-1(b)所示。

(a)(b)

图11-1层次模型、网状模型示意图

(a)层次模型;(b)网状模型

关系模型使用二维数据表格来表示数据间联系的数据库模型,它的数据结构是一个二维的数据表框架,逻辑结构清晰、直观,且有严格的数学证明,如表11-1所示。

表11-1关系模型

学号

姓名

性别

出生日期

系别

001001

张三

1982.4.5

计算机系

001002

李四

1983.5.6

外语系

关系数据库模型与以上数据库模型相比,有以下优点:

Ø概念单一:

数据间的联系都用关系表示,数据的逻辑结构就是一张表。

Ø规范化:

关系模型中的数据关系要满足一定的规范要求。

Ø集合操作:

操作对象和操作结果都是若干元组的集合,而不是采用单记录方式。

Ø数据的逻辑独立性:

应用程序和数据库分离,不必随数据库的改变而变化。

Ø数据的自动导航:

数据的访问路径由数据库优化决定,便于用户操作。

11.1.3数据库产品

1.Oracle数据库

Oracle是一个典型的分布式数据库管理系统,由全球最大的企业软件供应商甲骨文公司开发,系统采用客户机/服务器体系结构,并提供SQL和PL/SQL两种语言对数据库进行操作。

通过SQL系统可以实现与诸多数据库的兼容。

PL/SQL是模块式的过程化SQL语言,它具备了许多SQL系统中没有的过程化属性的优点。

Oracle数据库管理系统的特点是:

Ø无范式要求,可根据实际系统需求构建数据库。

Ø采用标准的SQL结构化查询语言。

Ø支持大型数据库。

Ø具有图形化界面,开发环境友好。

Ø提供数据保护功能,可监控数据库的运行状态,及时调整数据缓冲区大小。

Ø分布优化查询功能。

Ø支持客户机/服务器体系结构以及混合的体系结构。

Oracle10g应用服务器(Oracle10gApplicationServer)已经正式上市,这是世界上第一款用于网格计算的中间件,它可以简化在网格环境中运行的应用管理。

Oracle10g应用服务器提供了近600项新功能,其中包括加强了的数据整合功能和网络服务基础设施。

在开放型标准的基础上,Oracle10g应用服务器产品线提供了一个综合平台以支持电子商务的各种要求,能够全面支持Java2企业版(J2EE)、企业门户软件、高速缓存、商业智能、身份识别、快速应用开发、无线应用和网络服务等。

此外,Oracle10g应用服务器是业界唯一内置了网络计算和整合技术的中间件产品。

凭借其网格计算功能,Oracle10g应用服务器能够根据具体需要而集中使用工业标准服务器、存储设施和软件,从而帮助客户减少IT管理所需要的时间、人工和成本。

因此,企业可以充分使用整个系统(或网格)的能力来满足企业内所有应用的需要,而无需专门购买更多软件用于处理某个单独的应用。

作为Oracle网格基础设施的一部分,Oracle10g应用服务器允许客户在企业网格上直接使用现有的应用,不需要做任何修改。

Oracle10g应用服务器中加强了的整合组件可以使企业使用一个平台就能进行应用到应用、业务到业务以及业务流程到网络服务的数据整合。

Oracle10g应用服务器提供了一个直观的方式来开发和管理网络服务和合成性应用(指那些综合了新、旧应用软件各种功能的应用)。

Oracle10g应用服务器完全支持最新的WS.I网络服务标准,并能与.Net网络服务协同工作,这些特点使企业能方便地配置和管理安全的、企业级的网络服务。

这样,企业可以迅速地向客户、员工和业务伙伴提供新的服务。

2.DB2数据库

DB2是IBM公司的数据库系统产品,是企业级的数据库系统,是全球大型数据库系统之一,在数据存储市场中占有很高的比例。

全球有45000千多个企业正在使用DB2作为他们的数据管理系统。

在全球,DB2主宰了大型机上的数据库应用。

全世界70%的企业数据存储在DB2中。

独立分析公司发布的报告指出:

在数据库管理系统软件领域,2001年IBM已成为全球数据库管理系统软件的冠军。

作为关系型数据库技术的领导者,IBM公司在2001年将世界排名第四的Infomix数据库公司纳入麾下,并将其所拥有的先进特性融入到DB2当中。

由于IBM公司长期以来在关系型数据库领域的持续投资,DB2中所使用的数据库专利技术比Oracle、Microsoft、Sybase三家公司拥有的专利总和还要多。

DB2以其出色的性能,最坚固的稳定性和最佳的可扩展性赢得了全球所有重要软件开发商的支持。

随着企业的不断发展,DB2的价值会更加淋漓尽致地体现出来,因此DB2认证日渐成为求职的敲门砖,也是很多DB2爱好者热衷追求的目标。

DB2数据库具有如下特点:

Ø业界发展最快的数据库;

Ø平台延伸性最好的数据库;

Ø稳定的企业级数据库;

Ø高性能的数据库;

Ø简单、易开发、管理维护的数据库;

Ø提供异构数据访问能力;

Ø强大的数据仓库,OLAP分析功能;

Ø多媒体数据的支持(DB2Extender);

Ø电子商务的全面支持。

DB2通用数据库的最新版本是8.1版,为电子商务、企业智能和信息集成应用提供了绝佳支持;具有自行管理功能,更加易于使用和管理;提供一流的性能、可用性和可伸缩性以及低廉的总体拥有成本;使应用开发更加轻松。

以企业的关键性商务应用为核心,作为许多电子商务的核心,DB2已针对诸多的关键应用进行了优化,如电子商务、商务智能和信息集成。

在电子商务环境中,DB2能力非凡,能够管理包含在最大在线分类目录中的信息。

凭借其对最新网络服务标准和互联网协议的支持,企业能够轻松地与合作伙伴、客户和供应商共享数据。

DB28.1版有以下功能:

Ø管理多种数据类型,并能联合在各类IBM系列数据库上的关系型数据,包括IBMInformixDynamicServer。

Ø提供多平台支持,可以在各种系统平台上发挥该产品的功能。

ØIBM采用SMART(自行管理和资源调整)技术使得DB2具有自行管理、自行调整和自行修复等属性,从而将数据库管理员(DBA)干预以及维护需要降至最低限度。

ØDB2ControlCenter提供了一个通用型集成工具集,以便跨越不同软件和硬件客户平台,来管理本地及远程数据库。

Ø有两个新增功能:

HealthMonitor(健康监控器)和HealthCenter(健康中心),可监控DB2系统的运行状态是否良好。

Ø提供连接集中器,以用于支持大量并发连接用户。

Ø多维分簇,一种用于沿多维空间灵活、连续、自动组织数据的创意性方法。

它减少了对索引的需求,并且支持迅速转入转出、快速查询响应,以及简洁的定义语法。

Ø目录缓存,在大规模并行处理系统中,为所有节点提供缓存。

Ø在基于DB2开发各种应用时,编程人员可以利用PersonalDeveloper'sEdition(个人程序设计师版)和Developer'sEdition(程序设计师版)提供的丰富工具组,最大化的生产率。

ØDB2DevelopmentCenter(开发中心)环境不仅有助于简化存储过程、UDF和触发器的构建过程,还有助于开发、调试、测试和实施各类在Windows,UNIX和Linux以及IBMz/OS等平台上运行的DB2服务器的上述应用对象。

ØDevelopmentCenter(开发中心)还提供DB2与IBMWebSphereStudio,以及DB2与MicrosoftVisualStudio的紧密集成。

适用于行业标准应用编程界面(如ODBC,ADO,OLEDB,DB2CLI,JDBC,SQLJ和EmbeddedSQL)的新功能和性能改进。

Ø通过各种SQL改进性能,新增内置功能和信息性约束,简化了开发工序。

Ø一如既往地支持利用以下技术的组件型构架,这些技术包括Java2平台、EnterpriseEdition(J2EE),JavaBeans,MicrosoftComponentObjectModel(COM)以及XML等。

3.SQLServer数据库

SQLServer是一种应用相当广泛的关系数据库管理系统,它最大的特点就是在便于安装和使用的同时,还具有相当强大的功能。

尽管Oracle,Sybase等数据库环境性能良好,但从通俗易懂和使用方便的角度来考虑,都无法和SQLServer相媲美。

另外,作为Microsoft公司开发的数据库产品,SQLServer可以方便地实现和其他Microsoft产品的集成,如VisualStudio等。

SQLServer提供了一套数据库服务器,其中包括了集成的数据库开发环境软件包。

可以方便地组建一个动态的、具有伸展性的数据库体系,并且具有将关系数据库管理系统扩展为虚拟的对象数据库管理系统的能力,而这正是将来的发展趋势之一。

在应用方面,SQLServer2000已经完全超出了作为部门级数据服务器的需求,并完全可以提供更高效的数据库应用。

但SQLServer2000的最大优势还是体现于在Window2000平台上作为数据库服务器的良好性能。

4.MicrosoftAccess数据库

MicrosoftAccess是一种桌面数据库产品,并包含在MicrosoftOffice的专业版和开发版中,其最新版本是MicrosoftAccess2003。

用户可以使用此关系数据库的应用程序来创建和操作数据库系统。

由于MicrosoftAccess与Office系统产品的集成性,它的用户界面与其他Office应用程序(如Word、Excel)类似,甚至更简化。

MicrosoftAccess本身既是一个独立的数据库平台,也是一个强大的数据库开发工具,它可以开发和定制自己的客户机/服务器数据库应用程序。

MicrosoftAccess中包含了一套丰富的数据库开发工具,可以创建定制的数据库应用程序。

但与Oracle不同,Access一般不支持用户直接书写SQL来操控数据,而是提供了大量的数据库向导,用户可以在这些数据库向导的帮助下方便、快捷地开发自己的数据库,并执行许多常见的任务。

另外,Access还可以和SQLServer集成使用。

近年来,MicrosoftAccess已经作为一种前端工具应用于SQLServer中,即MicrosoftAccess可将SQLServer看作一个后端存储,而SQLServer则将MicrosoftAccess作为前端向导。

这样,用户可以利用MicrosoftAccess提供的数据库视图工具,很方便地同SQLServer相连接,并完成对数据库的操作。

11.1.4SQL语言介绍

如果要执行针对关系数据库的操作,必须要使用数据库管理系统中定义的一些命令和表述方法(语言)。

其中,最常用的就是SQL(StructuredQueryLanguage,结构化查询语言)。

在20世纪70年代初,E.E.Codd首先提出了关系模型。

70年代中期,IBM公司在研制SYSTEMR关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL)是在1976年9月的IBMJournalofR&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSIX3.135.1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSIX3.135.1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSISQL89,该标准替代ANSIX3.135.1986版本。

目前,所有主要的关系数据库管理系统支持某些形式的SQL语言,大部分数据库打算遵守ANSISQL89标准。

SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。

如今无论是像DB2,Oracle,Sybase,Informix,SQLServer这些大型的数据库管理系统,还是像VisualFoxpro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

SQL语言包含4个部分:

数据查询语言(DataQueryLanguage,如SELECT)、数据操纵语言(DataManipulationLanguage,如INSERT,UPDATE,DELETE)、数据定义语言(DataDefinitionLanguage,如CREATE,ALTER,DROP)、数据控制语言(DataControlLanguage,如COMMITWORK,ROLLBACKWORK)。

SQL广泛地被采用正说明了它的优点。

它使全部用户,包括应用程序员、DBA管理员和终端用户受益匪浅。

1.非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。

SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。

所有SQL语句接受集合作为输入,返回集合作为输出。

SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。

SQL不要求用户指定对数据的存放方法。

这种特性使用户更易集中精力于要得到的结果。

所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。

查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

2.统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。

基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。

SQL为许多任务提供了命令,包括:

查询数据;在表中插入、修改和删除记录;建立、修改和删除数据对象;控制对数据和数据对象的存取;保证数据库的一致性和完整性。

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。

3.所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。

所有用SQL编写的程序都是可以移植的。

11.2JDBC简介

11.2.1什么是JDBC

自从Java语言于1999年5月正式公布以来,软件市场中出现了大量用Java语言编写的程序,其中也包括数据库应用程序。

由于没有一个Java语言的API,编程人员不得不在Java程序中加以C语言的ODBC(ObjectDataBaseConnectivity)函数调用。

这就使很多Java的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。

随着越来越多的编程人员对Java语言的日益喜爱,许多公司在Java程序开发上投入的精力日益增加,对Java语言接口的访问数据库的API的要求越来越强烈。

由于ODBC有其不足之处,比如它并不容易使用,没有面向对象的特性等,Sun公司决定开发用语言为基础的数据库应用程序开发接口。

在早期的版本中,只是一个可选部件,到了JDK1.2公布时,SQL类包(也就是JDBCAPI)就成为Java语言的标准部件。

JDBC是一种用于执行SQL语句的JavaAPI(JavaDatabaseConnectivity),它由一组用Java编程语言编写的类和接口组成。

JDBC为工具/数据库开发人员提供了一个标准的API,使之能够用纯JavaAPI来编写数据库应用程序。

通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。

也就是说,开发人员可以不必写一个程序访问MySQL,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer,如图11-2所示。

图11-2Java访问不同的数据库

用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。

不但如此,使用Java编写的应用程序可能在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。

Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!

”。

Java具有健壮、安全、易用等特性,而且支持自动网上下载。

本质上是一种很好的数据库应用的编程语言。

它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。

11.2.2JDBC和ODBC比较

微软的ODBC可能是用得最广泛的访问关系数据库的API。

它提供了连接几乎任何一种平台、任何一种数据库的能力。

那么,为什么不直接从Java中直接使用ODBC呢?

回答是可以从Java中使用ODBC,但最好在JDBC的协助下,用JDBC-ODBC桥接器实现。

那么,为什么需要JDBC呢?

有以下几个方面的原因。

(1)ODBC并不适合在Java中直接使用。

ODBC是一个C语言实现的API,从Java程序调用本地的C程序会带来一系列类似安全性、完整性、健壮性的缺点。

(2)完全精确地实现从C代码ODBC到JavaAPI写的ODBC的翻译也并不令人满意。

比如,Java没有指针,而ODBC中大量地使用了指针,包括极易出错的空指针“void”。

因此,对Java程序员来说,用JDBC完全取代ODBC是很自然的。

(3)ODBC并不容易学习,它将简单特性和复杂特性混杂在一起,甚至对非常简单的查询都有复杂的选项。

而JDBC刚好相反,它保持了简单事物的简单性,但又允许复杂的特性。

(4)JDBC这样的JavaAPI对于纯Java方案来说是必需的。

当使用ODBC时,人们必须在每一台客户机上安装ODBC驱动器和驱动管理器。

如果JDBC驱动器是完全用Java语言实现的话,那么JDBC的代码就可以自动地下载和安装,并保证其安全性,而且这将适应任何平台。

11.2.3JDBC驱动程序的类型

目前所有的JDBC驱动程序可分为以下4个种类。

(1)JDBC-ODBC桥加ODBC驱动程序:

JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。

注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。

因此,这种类型的驱动程序最适合于企业网,或者是用Java编写的具有三层结构的应用程序服务器代码。

(2)本地API部分用Java来编写的驱动程序。

这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle,Sybase,Informix,DB2或其他DBMS的调用。

像桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。

(3)JDBC网络纯Java驱动程序。

这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。

这种网络服务器中间件能够将它的纯JDBC客户机连接到多种不同的数据库上。

所有的具体协议取决于提供者。

通常,这是最为灵活的JDBC驱动程序。

(4)本地协议纯Java驱动程序。

这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。

这将允许从客户机上直接调用DBMS服务器,是Internet访问的一个很实用的解决方法。

实际运用中第3、4类驱动程序将成为从JDBC访问数据库的首选方法。

11.3JDBC数据库应用程序

11.3.1如何使用JDBC

简单地说,JDBC可做三件事:

与数据库建立连接,发送SQL语句,处理结果。

下列代码段给出了以上三步的基本示例:

Connectioncon=DriverManager.getConnection("jdbc:

db2:

bookstore",

"username","password");

//连接名为bookstore的db2数据库,用户名为username,密码是password

Statementstmt=con.createStatment();

ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");

//执行SQL语句,结果存放在rs中

while(rs.next()){

intx=rs.getInt("a");

Strings=rs.getString("b");

floatf=rs.getFloat("c");

//获取相应的各项结果

}

JDBCAPI被描述成为一些抽象的Java接口,最重要的接口有以下几个:

Øjava.sql.DriverManager:

处理驱动的调入并且对产生新的数据库连接提供文件。

Øjava.sql.Connection:

代表对特定数据库的连接。

Øjava.sql.Statement:

代表一个特定的容器,来对一个特定的数据库执行SQL语句。

Øjava.sql.ResultSet:

控制对一个特定语句的行数据的存取。

其中java.sql.Statement又有两个子类型:

Øjava.sql.PreparedStatement:

用于执行预编译的SQL语句。

Øjava.sql.CallableStatement:

用于执行对一个数据库内嵌过程的调用。

11.3.2java.sql.DriverManager

DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。

它跟踪可

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1