设计报告.docx

上传人:b****0 文档编号:9251731 上传时间:2023-05-17 格式:DOCX 页数:16 大小:212.96KB
下载 相关 举报
设计报告.docx_第1页
第1页 / 共16页
设计报告.docx_第2页
第2页 / 共16页
设计报告.docx_第3页
第3页 / 共16页
设计报告.docx_第4页
第4页 / 共16页
设计报告.docx_第5页
第5页 / 共16页
设计报告.docx_第6页
第6页 / 共16页
设计报告.docx_第7页
第7页 / 共16页
设计报告.docx_第8页
第8页 / 共16页
设计报告.docx_第9页
第9页 / 共16页
设计报告.docx_第10页
第10页 / 共16页
设计报告.docx_第11页
第11页 / 共16页
设计报告.docx_第12页
第12页 / 共16页
设计报告.docx_第13页
第13页 / 共16页
设计报告.docx_第14页
第14页 / 共16页
设计报告.docx_第15页
第15页 / 共16页
设计报告.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

设计报告.docx

《设计报告.docx》由会员分享,可在线阅读,更多相关《设计报告.docx(16页珍藏版)》请在冰点文库上搜索。

设计报告.docx

设计报告

报告编码:

安阳师范学院本科学生毕业设计报告

监管信息平台的开发

——数据库设计

 

作者

郭征征

院(系)

物理与电气工程学院

专业

电子信息工程

年级

2005级本科

学号

05181011

指导教师

陈永超

日期

2009年6月15日

 

学生诚信承诺书

本人郑重承诺:

所呈交的设计报告是我个人在导师指导下进行的研究工作及取得的研究成果。

尽我所知,除了文中特别加以标注和致谢的地方外,报告中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。

与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

签名:

      日期:

      

 

论文使用授权说明

本人完全了解安阳师范学院有关保留、使用学位报告的规定,即:

学校有权保留送交报告的复印件,允许报告被查阅和借阅;学校可以公布报告的全部或部分内容,可以采用影印、缩印或其他复制手段保存报告。

签名:

        导师签名:

      日期:

 

监管信息平台中数据库总体结构的设计

郭征征

(安阳师范学院电子信息工程系河南安阳455002)

摘要:

本文主要说明了在一个Web项目中持久层出现的意义、作用,以及如何对数据的持久化处理。

任何一个Web项目在当大量用户同时访问数据库时,效率就会变的非常低,这是由于对数据库的反复读写增加了时间的开销。

当持久层作为单独的一层从业务层分离出来后作为单独的一层,人们就可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。

Hibernate就是这样一个工具,它使得程序员可以以面向对象的思维来处理基与关系类型的数据库,从而使得项目开发更加的面向对象化。

关键词:

持久层;Hibernate;数据持久化;对象关系映射

1引言

随着计算机应用软件的发展,应用程序逐渐由单层体系结构发展为多层体系结构。

其中,三层结构是目前典型的一种应用软件结构,如图1左。

表述层:

提供与用户交互的界面,如GUI(图形用户界面),web页面等;

业务逻辑层:

负责各种业务逻辑,直接访问数据库,提供对业务数据的保存、更新、删除和查询操作;

数据库层:

负责存放管理应用的持久性业务数据

 

三层结构的特点是:

所有下层向上层提供调用的接口,具体实现细节对上层透明。

层与层之间存在自上而下的依赖关系,即上层会访问下层的API,但下层不依赖于上层。

之所以从业务逻辑层分离出持久化层是由于:

数据库的读写是一个很耗费时间和资源的操作,当大量用户同时直接访问数据库的时候,效率将非常低,如果将数据持久化就不需要每次从数据库读取数据,直接在内存中对数据进行操作,这样就节约了数据库资源,而且加快了系统的反映速度。

增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。

特别是在大型的应用里边,会更有利。

同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。

从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。

目前在持久化层领域,实现模式有以下几种:

A 业务逻辑和数据访问耦合

B 主动域对象模式

C ORM模式

D JDO模式

E CMP模式

本系统采用的是ORM(ObjectRelationalMapping),即对象关系映射。

指以O/R原理设计的持久化框架(Framework),包括O/R机制、SQL自生成、事务处理和Cache管理等。

ORM的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。

因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。

2系统整体构架

2.1功能描述

本系统是基于B/S即浏览器/服务器模式应用、包括协同办公、数据维护、业务提示、统计分析、数据管理、个人助理、公共服务、系统管理8大功能模块便于管理结构设计,界面简洁友好、资料打印便捷、权限机动控制。

2.2技术的选择及其软硬件环境

2.2.1技术选择

在开发中相关的技术选择如表1:

表1技术选择

JAVAwebproject

Myeclipse6.5,NetBean5.5

HTML

Dreamweavercs3

数据库服务器

Oracle9.0.2

JAVA虚拟机

jdk1.4.2

系统结构

B/S

选择以上技术的具体原因为:

因为是市一级的项目,下级有多个使用单位,分布在不同的地方。

C/S的维护成本太高,不太适合项目的要求,所以选择B/S的结构。

由于客户已有Oracle9.0.2,jdk1.4.2的运行环境,不可能为本项目再配一个运行环境,所以Oracle9.0.2,jdk1.4.2成为我们必然的选择。

2.2.2软件环境

(1)软件配置如表2所示:

表2软件配置

操作系统

Windows2003(服务器)

WindowsXP(开发机器)

WEB服务器

Apache2+Tomcat5.0.28(开发)

数据库服务器

Oracle9.0.2

(2)开发工具及客户端工具如表3所示:

表3使用工具

JAVAwebproject

Myeclipse6.5

NetBean5.5

HTML

PhotoShopcs3

Dreamweavercs3

Oracle

Pl/Sqldeveloper

JAVA虚拟机

jdk1.4.2(如能使用5.0版更好)

(3)开发框架及可能应用的开源组件如表4所示:

表4框架

软件框架

Struts2+Sping2+hibernate3

其它开源组件

Ecside、prototype.js、json.js、c3p0、acegi

2.2.3硬件环境

开发机器配置如表5所示:

表5机器配置

计算机类型

普通PC机

内存

1G

显示器

17寸

硬盘

80G

其它

局域网内互联

数量

×8

2.3框架设计

当前流行的Web应用通常被分为四层,分别是:

表示层(Presentation Layer),业务层(BusinessLayer),持久层(PersistenceLayer)和域模型层(DomainModelLayer)。

通过分层,可以降低系统各部分之间的耦合程度,有利于开发人员的分工,增加系统的可维护性及可扩展性。

Struts2+Spring+Hibernate三个框架的组合是中,小企业普遍采用的方式,这种组合很好的体现了MVC模式。

它以Web应用的经典分层为基础,对Struts2、Spring和Hibernate框架进行了有效整合。

即以Struts2作为表示层实现(运用Struts2标签作为前端JSP页面的主要实现技术,运用Struts2的ActionServlet作为整个应用的控制转发实现),以Hibernate作为数据持久层的实现,业务层则应用Spring框架(各层之间面向接口的调用关系、接口如何实现、对Hibernate的模版封装、灵活的事务控制机制),最后设计出了一个灵活、松耦合、高度可扩展性和可维护性的Web开发框架。

图2框架设计图

如图:

表示层主要集中在Struts,业务层在Spring,持久层Hibernate。

下面重点介绍持久层的作用:

Hibemate持久层所负责:

Hibemate持久化的对象能够进行数据库中存储,更新,删除数据库记录的等同操作。

Hibemate框架支持大部分主流数据库。

在整个Web应用中,由实际需求中的业务对象组成的域模块层,通过一个持久对象(POJO)集合,让它在不同层之间移动。

Hibernate将数据库中的信息存放入对象(POJO),在连接断开的情况下把这些数据显示到Ul层。

而那些对象也可以返回给持续层,从而在数据库里更新。

3生成对象关系映射文件和JAVA代码

3.1Hibernate简介

3.1.1Hibernate定义

Hibernate是一种Java语言下的对象关系映射解决方案。

它是一种自由、开源的软件。

它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。

 

3.1.2Hibernate的作用

Hibernate不仅管理Java类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。

它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。

无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。

 

3.1.3Hibernate的应用

Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。

最具革命意义的是,Hibernate可以在应用EJB(EnterpriseJavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。

 

3.1.4Hibernate的核心接口框图

图3Hibernate核心接口

3.1.5Hibernate的优缺点

优点:

a.Hibernate使用Java反射机制而不是字节码增强程序来实现透明性。

b.Hibernate的性能非常好,因为它是个轻量级框架。

映射的灵活性很出色。

c.它支持各种关系数据库,从一对一到多对多的各种复杂关系。

缺点:

Hibernate限制您所使用的对象模型。

例如,一个持久性类不能映射到多个表。

3.2ORM——对象-关系映射

对象关系映射(ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中。

本质上就是将数据从一种形式转换到另外一种形式。

对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。

内存中对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。

因此,对象——关系映射系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

面向对象是从软件工程基本原则的基础发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著地区别。

为了解决这个不匹配的现象,对象关系映射技术应运而生。

Hibernate作为ORM开发工具,通过配置文件hibernate.cfg.xml或hibernate.propertys和映射文件(*.hbm.xml)把Java对象或持久化对象(PO)映射到数据库的数据表,然后通过操作PO,对数据库中的表进行各种操作。

3.3完成对象关系映射

这部分工作是在用ERwinPLSQL完成建表建库后才能进行。

在Myeclipse的DatebaseExplorer视图下完成相应得操作。

3.3.1使用到的理论及其工具

在此项目中构建Hibernate基础代码的过程是:

直接从数据库中导出表结构,并生成对应的ORM文件和Java代码。

通过直接从目标数据库中导出数据结构,最小化了手工编码和调整的可能性,从而在最大程度上保证了ORM文件和Java代码与实际数据库结构相一致,我们是在Eclipse中使用HibernateSynchronizer插件进行开发的。

Hibernate同时支持xml格式的配置文件以及传统的properties文件配置方式。

xml格式的配置文件提供了更易读的结构和更强的配置能力,可以直接对映射文件加以配置,而在properties文件中则无法配置,必须通过代码中的HardCoding加载相应的映射文件。

3.3.2具体实现

首先把Hibernate的所有jar文件到项目中来:

在当前项目上右击选择properties选项,然后单击JavaBuildPath窗口右侧的按钮,从弹出的对话框中选择jar文件所在的目录完成添加。

打开Myeclipse,切换到Myeclipsedatabaseexplorer视图,在DBBrowser中点击连接到服务器上的oracle数据库如图4:

图4连接服务器

本项目中我们在Oracle数据库中设置的用户名为kssadminuser,如图5所示。

连接到服务器上的Oracle数据库之后打开查看kssadminuser下拉条中的TABLE项,下面显示了数据库中的所有的表,每个表的下面都有这个表的详细信息,例如字段名,类型等。

图5建好的表

然后通过这些表在Myeclipse中利用已经安装好的HibernateSynchronizer插件自带的功能生成对应的ORM文件和Java代码如图6:

图6生成ORM文件和Java代码操作

点击finish后就可以自动生成ORM文件和Java代码。

Hibernate将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,大幅度减少了开发时人工使用SQL和JDBC处理数据的时间。

通过直接从目标数据库中导出数据结构,最小化了手工编码和调整的可能性,从而在最大程度上保证了ORM文件和Java代码与实际数据库结构相一致。

使得程序员可以以面向对象的思维来处理基于关系类型的数据库,从而使得项目开发更加的面向对象化。

4总结

随着知识经济时代的到来,社会进步正在不断加速,办公自动化系统的内涵与外延都会不断的拓展。

知识管理、实时协同、业务流程及信息集成、个性化门户将会丰富与完善办公自动化系统应用,同时IT技术的飞速发展,必然会有创新性的技术,以统一的支撑平台来解决办公自动化系统需求。

从今天Oracle、SAP等公司在客户机/服务器套件中增加Web前端的努力来看,C/S和B/S结构的结合依然有着强大的生命力。

本系统在远程学习,知识提炼方面还有待进一步提高。

监管信息平台的开发在总体分析的基础上确定了系统的逻辑模型,确立系统架构为基于J2EE的B/S模式的体系结构,设计出了一个基于Struts2+Spring+Hibernate多层结构的Web应用系统框型,本开发框架不仅可以提高软件产品质量,还使得应用开发规范和快速,节省了项目的成本、缩短项目的开发周期、降低项目管理的难度和风险,是本项目成功完成的保证。

基于Oracle数据库的可用性强、可扩展性强、数据安全性强、稳定性强等优点综合各方面因素选择了Oracle数据库来为本系统服务。

本文先是对看守所管理系统的总体架构的设计进行的了一个说明,主要介绍了在设计中所采用的相关的技术,并对web层次结构和Struts2+Spring+Hibernate架构的优点做了简要的说明。

随后重点介绍了数据库的总体结构设计,主要是根据单位四要素(监管场所、监管民警、监管对象、各类财物)之间的关系设计出表与表之间的关系,设计出表与表的关系是全局性的工作,根据以上的设计完成建表、建库的工作,最后由建好的数据库自动生成映射文件。

参考文献

[1]赵宏波,王琬茹.基于Hibernate和Struts的J2EE应用开发.科技信息,2009vol25(4):

4~25

[2]萨师煊,王珊.数据库系统概论.(第三版).北京:

高等教育出版社,2004.1~242.

[3]孔凡航.oracle9i中文版基础教程.(第二版).北京:

清华大学出版社,2007.1~157.

[4]周艳杰,温敏,伍应环.数据表的范式分析.中国高新技术企业,vol.02(24):

159-159.

[5]杨垚.面向对象的关系数据库设计.湖北造纸,2009vol22

(1):

47~49.

[6]耿小芬.面向对象的模型库与数据库接口技术.科技情报开发与经济,2009vol69(8):

139~140.

[7]周菊.数据库应用基础.安徽农村金融,2008vol31

(1):

49~50.

[8]盖国强.深入浅出Oracle.(第一版).北京:

人民邮电出版社,2006.91~161.

[9]付京周.精通Hibernate3.0-java数据库持久层开发实践.(第一版).北京:

人民邮电出版社,2007.1~160

RegulationofInformationPlatformsintheDesignoftheOverallStructureoftheDatabase

GuoZheng-zheng

(SchoolofPhysicandElectronicEngineering,AnyangNormalUniversity,Anyang,Henan455002)

Abstract:

Thedatabasetoreadandwriteisaverytime-consumingoperationsandresources,whenalargenumberofusersdirectlyaccessthedatabaseatthesametime,theefficiencyisverylow,ifthepersistentdatafromthedatabaseeverytimetherewouldbenoneedtoreaddatadirectlyinmemoryoperationofthedata,thussavingadatabaseofresources,butalsoareflectionofthesystemtospeedupthepace.

Increasethepersistencelayerhasbeendevelopedtoimprovetheefficiencyofthesoftwarearchitecturemoreclearly,inthecodingandsystemmaintenanceeasier.Especiallyinthelarge-scaleapplicationsinsidewillbemorefavorable.Atthesametime,persistencelayerasaseparatelayer,itcanbefortheindependentdevelopmentofalayerofsoftwarepackagestoawiderangeofapplicationstoachievedatapersistence,andtheprovisionofservicesfortheupper.Hibernateisonesuchtool,itallowsprogrammerstoobject-orientedwayofthinkingtodealwiththerelationshipbetweenthebaseandthetypesofdatabases,sothattheprojectdevelopmentofamoreobject-oriented.

Keywords:

Hibernate;datapersistence;object-relationalmapping

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2