华东区微软杯软件构件制作大奖赛_第1页
华东区微软杯软件构件制作大奖赛_第2页
华东区微软杯软件构件制作大奖赛_第3页
华东区微软杯软件构件制作大奖赛_第4页
华东区微软杯软件构件制作大奖赛_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、华东区微软杯软件构件制作大奖赛构件设计文档构件名称: DataBaseLink V1.0 构件制作人: * 指导老师: * 编制日期: 2004-9-10 1 概述1.1 背景随着现今软件应用技术的不断地发展以及企业的业务的发展, 企业的各个系统都面临着不断的更新与调整。由于大多数企业使用各种异构的数据库,加上企业系统地的其它要求:如灵活的应用模式对于软件的可扩展性的要求,复杂的分布式环境下的应用、较短的软件开发周期等因素的存在,使得开发企业系统变得十分的困难。为了部分缓解企业系统的开发难度。我们迫切需要一种通用的构件,来快速方便的实现新开发的系统与各种类型的数据库的连接。鉴于此,我们开发了D

2、ataLink构件,使用这个构件能够减少数据库连接的复杂性,从而大大提高软件开发效率。1.2 目标为提高软件开发效率,减少数据库连接的复杂性,提出采用构件化和软件复用的方法进行软件开发,此DataLink构件设计的目标是在各种情况下,程序员都能用其连接数据库。1.3 术语定义EJB:EJB技术定义了一组可重用的组件:Enterprise Beans。可以利用这些组件,像搭积木一样的建立分布式应用程序。当把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个Enterprise Beans,再加上一些配置参数。最后,这些Enterprise Beans被配置到一个装了EJB容器的

3、平台上。1.4 参考资料The Elements of Java StyleJava 2 Platform Enterprise Edition Specification, v1.41.5 命名规则(可选)本构件文件名称、程序名称、数据字段名以及变量名称,都参考自The Elements of Java Style。如果有自己特殊的命名规则,请自行说明2 构件范围界定与分析2.1 功能性要求此数据库构件沿袭了对象的封装特性,但同时又并不局限在一个对象,其内部封装了多个类、原型对象甚至过程,结构更灵活,应用也更加方便、灵活,另外,此构件突出了自包容和被包容的特性,便于软件的开发生产。此数据库构

4、件有如下的几个基本属性:1、此构件是可独立配置的单元,他可作为一个独立的软件,单独运行,用户使用时,可以像装配零件一样去使用。2、此数据库构件强调与环境和其他构件的分离,因此构件的实现时严格封装的,外界没机会或没必要知道构件内部的实现细节,Home()接口对用户屏蔽了所有内部实现过程。3、此构件可以在适当的环境中被复合使用。在设计此构件时,一个目标就是使用户在各种需要的环境下,复用此构件,因此构件提供清楚的接口规范,可以与环境交互。从以上四个属性可以看出, 2.2 非功能性介绍构件的非功能性特征,如:构件并发处理要求、异常处理、安全机制等。2.3 环境依赖描述构件对于操作系统、开发工具、容器、

5、实现的语言和平台等的依赖。本构件由Java语言编写, 在WebSphere环境下开发, 由于Java的跨平台特性,因此本构件能用于各种平台下的数据库连接.EJB容器向程序开发人员提供了最大程度的方便,简化了分布式应用程序的复杂的方面,如:安全性,事务协调性,数据持久性,EJB容器被打包成一个标准的JAVA文件,一个EJB文件可以包括一个或多个的Enterprise Beans。对每一个Enterprise beans,都有它的接口,类,和配置描述器。用户调用此构件的 Home()接口时,在客户端生成一个Enterprise Beans的实例,随后可对此数据库构件按用户需求进行配置。3 可变机制

6、的设计用户选择数据库后,可对数据库进行选择,更新,删除操作。对于用户不同的参数选择,构件生成不同的SQL语句,如:当用户选定数据库表Student,要对其进行选择操作时,构件自动列出用户可选的字段(StudentNM,Name,Birthday,Sex,Major),用户可从中选择需要的字段,然后加入约束条件,如StudentNM 从1-100,则相应的数据库查询语句生成为:Select StudentNM Name from Student where StudetNM between 1 and 100数据库连接上后,就可对数据库执行查询语句。4 内部结构设计4.1 内部对象1.数据库连接

7、对象属性:主机名,用户名,密码,数据库名.数据库连接驱动,数据库类型.方法: GetConnName(String hostName) 参数为连接数据库的主机名 GetUserName(String UserName) 参数为数据库用户名 GetPWD(String PWD) 参数为登录数据库密码 GetDriver(String Driver) 参数为所要连接的数据库驱动 GetDBType(String DBType) 参数为数据库类型 GetDBName(String DBName) 参数为数据库名IO流操作Void main() 获取数据库连接属性,实现连接数据库获取主机名获取用户名获

8、取密码获取数据库名数据库连接类型数据库连接驱动数据库连接类导出实例化为数据库连接对象生成conn文件4.2 子构件 构件列表子构件编号子构件名称1001Oracle JDBC驱动程序1002SQL Server 2000 JDBC驱动程序1003DB2 Universal Database JDBC驱动程序1004My SQL JDBC驱动程序1005Microsoft Access JDBC驱动程序1006试验服务器平台(Tomcat) 构件间关系.1连接文件生成模块5 数据设计5.1 内部数据结构本构件使用标准的Ejb数据结构,如果有特殊的格式可以自行列出。5.2 数据库设计此示例构件对于

9、数据库没有特殊要求。如果此构件需要特殊数据库,则进行描述。6 接口内部设计描述构件每个接口的功能。图例#1001输入端输出端6.1 #1001 Oracle JDBC驱动程序#1006试验服务器平台(Tomcat)数据库实体#10016.2 #1002 SQL Server 2000 JDBC驱动程序(类似于#1001)7 非功能部分设计7.1 异常处理(仅列出主要的错误类型)异常类型产生原因处理方法备注NoSuchHostException找不到相应主机HandleNoSuchHostException()ArthmaticException数学错误HandleArthmaticExcept

10、ion()NoSuchPathException系统未发现此目录存在HandleNoSuchPathException()7.2 安全性1 本构件及其内部的子构件均是用JAVA语言构建的,其整体结构为一系列类的集合。数据都采用封装的机制隐藏在类中;因此,数据无论是在调试时还是在运行时,都呈现出较好的安全特性。2 本构件考虑到了一系列的意外情况,并相应的定义了一系列的例外处理函数,使得在程序执行中出现的大部分意外情况能得到及时、正确的处理。3 至于数据库内部的数据的安全性,完全交由DBMS处理。8 界面设计本构件在组装时是通过一系列接口实现的,核心是实现与数据库的自动连接,本程序所呈现出来的界面

11、只是作为一个功能演示;当然,如果应用程序装配员愿意,也可直接使用本程序提供的界面。8.1 设计时 数据库连接界面IfD#001 数据库连接测试失败界面IfD#0028.2 运行时由于在进行设计界面时,使用的是可视化的设计环境,所以在实际运行时,所看到的界面与上面列出的大同小异。所不同的是,多了一些附加页面,比如对例外处理中所需要显示的警告,提示(如下图所示)页面等。9 构件生命周期(构件运行时从建立到撤销的整个生命周期过程)上层环境提出条用此构件模块的请求调用IfD#001界面数据库连接成功数据库连接失败调用IfD#002界面否是调用IfD#003否是生成连接文件,询问是否要测试数据库操作调用

12、IfD#006IfD#004IfD#005成功失败退出到上层环境上图中红色方框内部分即为整个构件的生命期10 构件封装描述构件封装后的文件结构及各文件所提供的接口。本构件由如下文件组成Conn.java (主要完成数据库连接工作) Error.java (封装以上提出的异常处理,处理运行时错误的文件)Select.java (执行记录选择操作) Update.java (执行记录更新操作)Delete.java (执行删除记录操作) 构件封装之后文件结构如下:Conn.java数据库连接Error.java失败调整成功Select.javaUpdate.javaDelete.java成功失败输

13、出Error.java各文件的提供的接口为:Conn.java文件:GetConnName(String hostName) 参数为连接数据库的主机名GetUserName(String UserName) 参数为数据库用户名GetPWD(String PWD) 参数为登录数据库密码 GetDriver(String Driver) 参数为所要连接的数据库驱动GetDBType(String DBType) 参数为数据库类型GetDBName(String DBName) 参数为数据库名 Select.java文件: GetTableName(String TableName) 参数为要进行选择操作的数据表名 GetColumnName(String ColumnName) 参数为选择的列名 GetConstraints(String constraint) 参数为选择操作的约束条件 Update.java文件 GetTableName(String TableName) 参数为要进行更新操作的数据表名 GetColumnName(String ColumnName) 参数为更新的列名 GetConstraints(St

温馨提示

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

评论

0/150

提交评论