(计算机应用技术专业论文)基于struts和hibernate的健康保险核心业务系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于struts和hibernate的健康保险核心业务系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于struts和hibernate的健康保险核心业务系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于struts和hibernate的健康保险核心业务系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于struts和hibernate的健康保险核心业务系统的设计与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)基于struts和hibernate的健康保险核心业务系统的设计与实现.pdf.pdf 免费下载

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

文档简介

东北大学硕士学位论文 摘要 基于s t r u t s 和h i b e r n a t e 的健康保险核心业务系统的设计与实现 摘要 本论文是结合东软的健康保险核心业务系统的具体项目完成的。在系统的开发实践 过程中,本文作者同时参与了该系统体系架构的设计和系统模块的实现。在设计系统体 系构架时,提出了在m v c 设计模式和s t r u t s 构架的基础上,将传统的s t r u t s 构架的各 层进一步细分,在数据持久层融入h i b e r n a t e 来进行数据操作的w e b 应用构架方式。在 系统模块开发上,本文作者主要承担了系统中的系统安全部分和理赔模块部分的开发, 利用s t r u c t s 的框架很好的解决了理算计算部分的复杂逻辑,使系统能更好的适应通用系 统的需求,解决了复杂报表的计算问题。 本文的组织结构如下:首先介绍了j 2 e e 的基本知识和m v c 设计模式,在此基 础上,详细阐述了s t r u t s 构架的体系结构和基本原理,并通过数据持久层概念的提出, 介绍了h i b e r n a t e 的基本知识。然后通过应用s t r u t s 和h i b e r n a t e 框架技术开发东软健康 保险核心业务系统的实例,分析各项技术在实际开发中的应用方式,讨论了s t r u t s 和 h i b e r n a t e 的优缺点,并总结了项目中的各项体会。最后,在本文的结尾进行了本文工作 的总结以及需要进一步研究的问题。 目前,该系统已经通过试运行,处于正式运行阶段,达到了预定的设计目标,使用 效果良好。本论文的内容对于政府、企事业单位相关的业务处理系统可以作为参考使用。 关键词h i b e r n a t e 框架;s t r u t s 框架;持久层;健康保险核心业务系统 东北大学硕士学位论文 a b s t r a c t d e s i g n a n d i m p l e m e n t a t i o no f h e a l t hi n s u r a n c e f i n a n c i a ls y s t e m a b s t r a c t t h i st h e s i si sa c c o m p l i s h e db a s e do nt h ep r o j e c to ft h en e u s o f th e a l t hi n s u r a n c ef i n a n c i a ls y s t e m i nt h e w h o l ep r o c e s so fi t sd e v e l o p m e n t ,t h ea u t h o rp a r t i c i p a t e di nb o t ht h ed e s i g na n dt h er e a l i z a t i o no ft h e s y s t e m d u r i n gt h ed e s i g n i n g t h ea u t h o rp u tf o n v a r dt h ea p p l i c a t i o no fm v c m o d e li n t ot h es y s t e m s t r u c t u r e w h i c hd e t a i l st h el e v e l so ft h ew e bo nt h eb a s eo ft r a d i t i o n a ls t r u t sl e v e l s i nt h er e a l i z a t i o n ,t h e a u t h o ru s e dh i b e r n a t ei nt h eo p e r a t i o no fd a t ap e r s i s t e n c el a y e r i nt h ed e v e l o p m e n to fs y s t e mm o d u l e ,t h e a u t h o rw a sr e s p o n s i b l ef o rc o m p e n s a t em o d u l e ,w h i c hi st h ec o r ep a no f t h i ss y s t e m t h ef l a m et h a tm a k e u s eo ft h es t r u c t sw a sg o o dt os o l v et h er e a s o nc a l c u l a t e st oc a l c u l a t ep a r to fc o m p l i c a t e dl o g i c s ,m a k i n g s y s t e mc a nb e t t e ra d a p tt h en e e do ft h ei ng e n e r a lu s es y s t e m r e s o l v e dt h e c a l c u l a t i o np r o b l e mo ft h e c o m p l i c a t e dr e p o r t t h i st h e s i s f i r s t l y d e s c r i b e dt h e a r c h i t e c t u r ea n dp r i n c i p l eo fs t r u t sf r a m e w o r kb a s i n go nt h e i n t r o d u c i n go fj 2 e ea n dm v cm o d e l s e c o n d l y , t h r o u g hr a i s i n gt h ec o n c e p t i o no fd a t ap e r s i s t e n c el a y e r , t h i sp a p e ri n t r o d u c e dt h eb a s i ck n o w l e d g eo f h i b e r n a t e t h i r d l y , t h r o u g ha ne x a m p l eo f a p p l y i n gs t r u t sa n d h i b e m 砒ef r a m e w o r kt on e u s o f lh e a l t hi n s u r a n c ef i n a n c i a ls y s t e m ,t h i st h e s i sa n a l y z e d i nd e t a i lt h e a p p l i c a t i o no fs t r u ma n dh i b e r n a t ef r a m e w o r ki n t op r a c t i c a ld e v e l o p i n gp r o c e s s i td i s c u s s e da d v a n t a g e s a n dd i s a d v a n t a g e so fs t r u t sa n dh i b e r n a t ef r a m e w o r k ,a n ds u m m a r i z et h ee x p e r i e n c e si nt h ep r o j e c t d e v e l o p e r l e n t i nt h ee n do f t h ep a p e r , s u m m a r i z et h ew o r k i n go ft h i sp a p e ra n dd i s c u s saf e w q u e s t i o n sw h i c hi sn e e d e dt ob es o l v e di nt h ef u t u r e t od a t et h es y s t e mh a sa l r e a d yp a s s e dt e s ts t a g ef o r m a lw o r ko fw h i c hr e a c h e st h es c h e d u l e dt a r g e t a n dg a i naw e l lu s a b i l i t y i nt h ec o n t e n to ft h i st h e s i st h e r ei sac e r t a i n t h e o r e f i c a ls i g n i f i c a n e e sa n du s i n g v a l u e s k e y w o r d s :h i b e r n a t ef r a m e w o r k ;s t r u t s f r a m e w o r k ;p r e s i s t e n c el a y e r ;h e a l t h i n s u r a n c es y s t e m i i 独创性声明 本人声明,所呈交的学位论文是在导师的指导下完成的。论文中取得 的研究成果除加以标注和致谢的地方外,不包含其他人已经发表或撰写过 的研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示谢 意。 学位论文作者签名:易、彩 日 期:9 - o o d - ,f 3 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师不同意网上交流,请在下方签名;否则视为同意。) 学位论文作者签名: 签字日期: 导师签名: 签字日期: 东北大学硕士学位论文第一章引言 1 1 研究意义 第一章引言 警今时代倍怠筵予飞速笈展的酚段,人们已经楚在数字纯豹生存交闯之中,i n t e m e t 网构造了无限的信息资源,w e b 浏览器是获得信息、沟通世界的主要工具,它的普及改 变了企韭的经蘅方式和服务方式。越来越多的公司、企泣以及政府希望通过翻鞠i n t e m e t 所提供的无地域、无圈界、无时间限制的便利信息环境来开发自己的w e b 应用。在这 种情况下,基于j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 平台的s t r u c t s 、h i b e r n a t e 构架的w e b 应用应运而生,它通过应用服务器端缎件的形忒,封装了业务处理逻辫,提离了程序的 可重用性和可扩展性。 强翦在我国保险系统行业中,多数还在使用c s 模式的独立性比较强的小裂业务系 统,存在数据管理混乱,相互交互信息和数据阂难等一系列问题。本课题的目的就是使 用基予j 2 e e 乎台的s t r u c t s 、h i b e r n a t e 框架,利用分布式w e b 服务构浆,将这套照务系 统应用到网络中,实现在线业务功能,使得这饔系统能蘑加广泛的应阁于人们的生活当 中。 1 _ 2 研究背景 j a v a 瑗凌已经是一露缓淀行,缀成熬豹编程语言,它矮子建立企照级软转。j a v a 扶 一种开发在浏煎器中遮行的a p p l e t 的方式变成了一个能够推动今天搬业级应用程序开 发懿缓耧褛型,这令避程是十分弓l 天溪瑟懿。j 2 e e 怒j a v a 撵窭戆垒簸舨懿系统平台, 它已经取代了多种专用的和非标准的技术,除了与之抗衡的微软公司的基于n e t 的技 寒,它已经袋为开发繁予w e b 翡金攮应鼹程溥懿蓄逡技术。 j 2 e e 是个以容器为中心的体系结构。j 2 e e 容器是一个用于管理根据a p i 技术 规范开发的盛瘸程痔缀箨浚袋提供对j 2 e ea p i 谤闻的运聿亍环渍。褰耩静功戆稿强予一 个运行环境,它提供了多级的抽象能力。 j 2 e e 的体系结褐中有霞个容器: ( 1 ) 一个w e b 容器,用于驻留j a v as e r v l e t 和j s p 嘲孤。 ( 2 ) 一个e j b 容器,麓于驻瞽e n t e r p r i s ej a v a b e a n 组徉。 ( 3 ) 一个a p p l e t 容器,用于驻露j a v a a p p l e t 。 ( 4 ) 一个应用程序客户容器,用子驻留标准j a v a 应用程序。 这些容器分别为囊己的维l 牛提供了个逡章亍环境。j 2 e e 组件也称为管理对象,因 东北大学硕士学位论文第一章引言 为这些对象是在容器运行环境中生成和管理的。文中,我们只关注w e b 容器。 s e r v l e t 是一种服务器方程序,允许应用程序逻辑嵌入到h t t p 请求一响应过程中。 s e r v l e t 提供了一种扩充w e b 服务器使之能够在h t m l ,x m l ,或者其他w e b 语言 中实现动态内容的功能。 j a v a s e r v e rp a g e s ( j s p ) 提供了一种在网页中嵌入组件的方式,并且允许生成相应的网 页发送给客户。j s p 网页可以包含h t m l ,j a v a 代码以及j a v a b e a n 组件。j s p 网页 实际上是s e r v l e t 编程模型的一个扩充。j s p 网页提供了一种功能强大的动态网页装配 机制,可以从j a v a 系统平台的许多优点中获益。 与纯的j a v a 代码构成的s e r v l e t 相比,j s p 网页只是基于文本的文档,直到w e b 容器把它们编译成相应的s e r v l e t 为止。这样在应用程序逻辑和表示逻辑之间就有了清 楚的分界。这使得应用程序开发者能够集中注意力于业务逻辑,让w e b 设计者集中注 意力于信息的表示。 j s p 的出现让我们觉得开发w e b 应用是那么的简单,但是在技术上是没有什么可 以永远满足人们的。我们很快又发现,在j s p 网页中我们不得不把业务逻辑写在显示模 块中,即使使用了j a v a b e a n ,程序还是很复杂,难以维护。 m v c 模式的思想不仅使功能模块和显示模块分离开来,同时它还提高了应用系统 的可维护性,可扩展性,可移植性和组件的可复用性。而s t r u t s 正是基于m v c 模式 的一个通用的请求控制器框架,它来自a p a c h ep r o j e c t ,是一个开放源代码的产品。 现在s t r u t s 已经开始被广泛使用,它引起了j a v aw e b 开发者普遍的兴趣,我们只 要不断发展它,一定会更大程度的提高生产率和可维护性,会给我们带来更丰富的收益。 s t r u t s 最早于2 0 0 0 年5 月作为j a k a r t a 项目的组成部分问世,j a k a r t a 项目由a p a c h e 基金组织运作。项目的创立者希望改进和提高j a v a s e r v e r p a g e s ,s e r v l e t ,标签库以及面向 对象的技术水平。j a k a r t a 项目有很多成功的部分,例如大名鼎鼎的t o m c a t ,以及c a c t u s , l o g a j 等一些激动人心的产品,而且s t r u t s 是开放源代码的项目,它的前景是不可限量 的。 在本系统的开发中,由于项目涉及到的单位和个体非常多,数据库相当复杂,所以 对数据库的开发相当困难,对数据持久层的开发便成了一个大的问题。为了很好的管理 处理业务层与数据库的关系,在业务层和数据库增加了数据持久层,数据持久层的实现 有多种方法: 使用s q l j d b c 手工编码持久层。实现j a v a 持续性的最普遍的方式是应用程序员 直接使用s q l 和j d b c 进行工作。结构化查询语言( s q l ) 是数据库系统的通用语言,利 用它,用户可以用几乎同样的语句在不同的数据库系统上执行同样的操作s q l 语言为 东北太学硕士学位论文 第一章引言 用户提供了强大的功能,按照功能可分为4 大类,分别是数据查询语言,数据定义语言, 数据操纵语言,数据控制语言。数据查询谱言的功能楚查询数据,数据定义语言的功能 是建立、删除和修改数据对象,数据操纵语言的功能怒完成数据操作的命令,铡躲查询, 数据擦制语言的功能是控制对数据库的访问,服务器的关闭、启动等。j d b c 是一秘可 用于执行s q l 语句的j a v a a p i ( a p p l i c a t i o n p r o g r a m m i n g i n t e r f a c e 应用程序设计接口) 。它 由一些j a v a 语言编写的类和界面组成。j d b c 为数据库应用开发人员、数据库前台工具 开发人员提供了一种标准的应用程序没计接口,使开发入贫可以用纯j a v a 语言编写完整 豹数据库成用程序。j d b c 是一种底层a p i ,这意喙羲它将直接调用s q l 鑫令。j d b c 完全胜任这个任务,丽且比其他数据库互联更加容易实现。同时它也是构造高层a p i 和数据库开发工具的基础。高层a p i 和数据库开发工具应该是用户界面更加友好,使用 更加方便,更易于理解的但所有这样的a p i 将最终被翻译为像j d b c 这样的底层a p i 然而,为域中的每个类手工编写持续性代码的工作量是非常大的,会消耗大部分豹开发 时阉。此夕 ,当黉求改变时,一个手工编码的解决方案总是需要更多的注意和维护努力, 当开发一个大型的应用程序的时候,对于繁多的s q l 语句的改变,将给开发带来了很 大的不利。使用h i b e r n a t e 框架。h i b e r n a t e 去掉了很多繁琐的工作,使开发者可以集中 到业务问题的实现上。不论开发者使用什么样的应用开发策略,自顶向下,从域模型开 始;或者鑫赢囱上,从个现有的数据库模式开始使用h i b e r n a t e 和适当的工具将会 减少大量的开发时间。在手工编码的持续性系统中,关系表示和对象模型之间存在一种 不可避免的紧张。改变一个几乎总是包含改变其它的,并髓一种表示设计经常需要妥协 来适应其它的存在。基于t i i b e m a t e 的代碣编写相对较少,跟容易对系统操作的理解。 在有对闯限制的项目中,手工编码的持续层通常允许开发者穰糟一点时闯做一些优纯。 h i b e r n a t e 允许开发者在全部的孵闰内做更多的优化,开发嚣可以花更多的时闻手工优化 一些其余的瓶颈。 东北大学硕士学位论交 第二章s 廿u t s 与h i b e m a t e 概述 第二章s t r u t s 与h i b e r n a t e 概述 2 1 关系数据库和面向对象技术 2 1 1 关系数据库 自从1 9 7 0 年i b m 圣约瑟研究实验室的高级研究员埃德加一考特( e d g a rf r a n k c o d d ) 在c o m m u n i c a t i o n s o f a c m 上发表了大型共享数据库数据德关系模型一文,定义了 关系数据库的基本概念,引进了规范化理论,为关系数据库全面开发奠定了基础以来, 关系数据库引来了广泛的注意和研究。 关系数据库足基于关系模型的数据库。“关系”是数学中的一个基本概念,由集合 中的任意元素所组成的若干有序偶对表示,用以反映客观事物问的一定关系。关系模型 的基本思想是把实体模型与实体模型问的联系均归为二维表格的形式加阱描述。二维表 中的每一列对应实体的一个属性,每一行形式由多种属性组成的多元组与一个特定的实 体相对应。实体和联系均用关系描述,或者通过关系之间的关系运算建立联系。关系模 型与其他数据模型相比,首先,其数据结构简单、规范;其次,它运用了先进数学工具 一一集合运算和谓词运算,并创造了投影、选择和联接运算,即关系代数。使用这些运 算可咀把二维表进行任意的分割和组装,随机地构造山各式各样用户所需要的关系。在 关系模型中用户对数据库的操作是使用非过程化的表示,用广接口不涉及任何存储路径 和存储方式,数据独立性高,阕此,用户对关系模型的理解、使用更加方便。 关系数据库管理系统既不特定于j a v a ,也不特定于特殊的应用。关系技术提供了一 种在不同的应川或者相同应用的a ;同技术( 如事务工具与报表t 具) 之间共享数据的方 式。关系技术是多种小同的系统与技术平台之j 、日j 的一个荚同特征。因此,关系数据模型 通常足业务实体共同的企业级表示。关系数据库管理系统具有基于s q l 的应用编程接 口,因此我们称今天的关系数据库产品为s q l 数据库管理系统,或者当我们讨论特定 系统时,称之为s q l 数据库。 2 1 2 面向对象技术 随着8 0 年代例如c + + ,o b j c c tp a s c a l 等等一系列描述能力较强、执行效率i 蚓拘面 向对象编程语言的出现,标志着面向对象的方法与技术丌始走向实用。当时就有人曾经 预言,面向对象将成为9 0 年代计算机领域的主流技术,现在这个语言已经成为无可置 预言,面同对象将成为9 0 年代计算机领域的主流技术,现在这个语言已经成为无可置 东北大学硕士学位论文 第二章s t r u t s 与h i b e r n a t e 概述 第二章s t r u t s 与h i b e r n a t e 概述 2 1 关系数据库和面向对象技术 2 1 1 关系数搬库 警筑1 9 7 0 年i b m 圣终豢骚究实黢窒熬蠢缀硬究爨埃德热一考特( e d g a rf r a n k c o d d ) 在c o m m u n i c a t i o n so f a c m 上发表了大型共事数据库数据德荚系模型一文,定义了 关系数罐库酌蘩本穰念,弓| 遗了蔑范纯理论,为关系数据痒全嚣开发羹定了基虢鞋来, 关系数据库引米了广泛的注意和研究。 关系数据簿楚基予关系模蕤韵鼗攒痒。“关系”趋数学中豹一令基本概念,由集合 中的任意元素所组成的若干有序偶对表示,用以反映客观事物问的一定关系。关系模型 的基本思想是撼实体模型与实体模型阔静联系均归为二维表稽的形式擞荔籀述。二雏表 中的每一列对废实体的一个属性,每一行形式幽多种属性组成的多元组与一个特定的实 体相对应。实体和联系均雳关系描述,藏者通避关系之间豹关系运算建立联系。关系模 型与其他数据模型相比,首先,其数据结构简单、规范;其次,它运用了先进数学工具 一一集合运算和谓词运算,并创造了投影、选择和联接运算,即关系代数。使用这些运 算可以把二维袭进行任意的分割和组装,随机她构造出各式备棒用户舾需要的关系。毅 关系模跫中用户对数据库的操作是使用非过程化的表示,用户接口不涉及任何存储路径 稆存德方式,数据独立性离,嚣此,蠲户对关系模型的理解、使用更加方便。 关系数据库管理系统既不特定于j a v a ,也不特定于特殊的应用。关系技术提供了一 琴孛在不爨懿应燧或者麴圈应爝蟾不同矮木( 热事务工舆与报表工具) 之越共享数据的方 式。关系技术烧多种不同的系统与技术平台之间的一个共同特瓤。因此,关系数据模型 逶警怒渣务实臻共同黪企韭缀褒示。关系数据疼管理蓉统具鸯基于s q l 麴应爆编程接 口,因此我们称今天的关系数据库产品为s q l 数据库管理系统,或者当我们讨论特定 系统黪,称之舞s q l 数攥瘁。 2 。1 。2 藏囱对象技术 随着8 0 年代例如c + + ,o b j e c tp a s c a l 等等一系列描述能力较强、执行效率高的面 向对象编程语言的出现,标恚精面向对象蓊方法与技术开始走向实甭。当对藏窍入彗缀 预言,面向对缘将成为9 0 年代计算机领域的主流技术,现在这个语言已经成为无可鼹 东北大学硕士学位论文 第二章s t r u t s 与h i b e r n a t e 概述 疑的事实。 人们对软件本身的认识,一般是以着眼于编程开始,随后逐渐形成从分析、设计到 编程、测试与维护一整套的软件工程体系。因此,在计算机软件领域,很多新的方法与 技术都是从编程阶段首先出现,进而发展到软件生命期的各个阶段。例如大家熟悉的结 构化方法,开始提出时叫做“结构化程序设计”,它引出了一系列的结构化编程语言, 然后便发展到“结构化分析”和“结构化设计”。面向对象方法也是如此,自8 0 年代末 期到9 0 年代,人们对面向对象的方法的研究与应用,不再局限于编程阶段,而时从系 统分析和系统设计阶段就开始采用面向对象方法,使面向对象的方法与技术向着软件生 命期的前期阶段发展。人们对面向对象的研究重点,从面向对象的编程( o o p ) ,转移到 面向对象的分析和设计( o o a 与o o d ) 。这标志着面向对象方法已经发展成一种完整的 方法论和系统化技术体系。 “面向对象”是一种认识客观世界和模拟客观世界的方法。它将客观世界看成由许 多不同种类的对象构成的;每个对象都由自己的内部状态和运动规律;不同对象之间的 相互联系和相互作用就构成了完整的客观世界,面向对象方法学所引入的对象、方法、 属性、类、实例、继承性、封装性等一系列概念,它极大的拉近了软件世界和客观世界 距离,为我们通过设计和实现软件系统人事和模拟客观世界奠定了坚实的基础。正是因 为如此,面向对象的方法与技术发展到软件生命期的前期阶段有着极为深刻的意义。因 为面向对象方法的本质,就是主张客观世界固有的事物出发来构造系统,提倡用人类的 现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立的系统能够映 射问题域,即:系统中的对象以及对象之间的关系能够如实地反映问题域中固有事务及 其关系这恰恰是从分析和设计阶段入手才能根本解决地问题。从这个意义上讲,软件生 命期的前期阶段,正是面向对象方法最能从根本上发挥其优势的领域。o o a 和o o d 的 出现是面向对象发展的必然结果。 2 1 _ 3 持久化在面向对象程序中的应用 几乎所有的应用程序都需要持续性数据。持续性在应用开发中是一个基本的概念。 在面向对象的应用中,持续性允许一个对象的寿命可以超过创建它的程序。这个对象的 状态可能被存储到磁盘上,并且在将来的某一时刻相同状态的对象可以被重新创建。 这样的应用不仅仅限于简单的对象,关联对象的完整图形也可以被持续化并且以后 可以在新的进程里被重新创建。大多数对象并不是持续性的,暂态对象只有有限的寿命, 被实例化它的进程的寿命所限定。几乎所有的j a v a 应用都在混合使用持续与暂态对象; 因此,需要一个子系统来管理专门的持续性数据。现代的关系数据库为持续性数据提供 东北大学硕士学位论文 第二章s t r u t s 与h i b e r n a t e 概述 了一种结构化的表示方法,允许排序,检索和合计数据。数据库管理系统负责管理并发 性和数据的完整性;它们负责在多个用户和多个应用之间共享数据。数据库管理系统也 提供了数据级别的安全性。 2 2 持久层与w e b 应用 面向对象的程序设计已经成为程序设计的标准,面向对象的数据库已经发展的相当 成熟,占据了数据库市场的大部分配额,但是在对象范例和关系范例这两大领域之间“阻 抗不匹配”。对象范例基于软件工程的一些原理,例如耦合、聚合和封装,对象范例侧 重于在包含数据和行为的对象中构建应用程序,而关系范例则主要针对数据的存储。当 为访问而寻找一种合适的方法时,“阻抗不匹配”就成了主要矛盾。使用对象范例,通 过它们的关系来访问对象,而使用关系范例,则通过复制数据来连接表中的行。这种基 本的差异导致两种范例的结合并不理想,于是有人提出对象数据库以希望解决这个问 题。但是,关系数据库技术已经发展得相当成熟,占据了数据库市场9 0 以上的份额, 对象数据库的普及尚需时日。数据持久层就是要在对象数据库与关系数据库之间提供一 个成功的企业级别的映射解决方案,尽可能的弥补这两种范例之间的差异。 2 2 1 持久层概述 持久层指对象的生存期跨越程序的执行期则称该对象具有持久性。对象持久性技术 的主要研究目标是在高级程序设计语言层次实现对象持久性,有效地存储和管理持久对 象,使程序员按同一表达式语法访问暂态对象和持久对象,统一暂态对象空间和永久对 象空间。显然,对象持久化将改变对象的生命周期,在没有持久化机制的系统中,一个 对象的典型生命周期是被创建被使用被删除。一旦系统中支持持久化,对象的生命周 期在被创建和被使用之后,可以通过持久化机制而延续,持久化就是通过提供保存对象 状态并在以后恢复它的方法来存储和检索该对象的。这样,对象不需要重新创建,通过 持久化存储和检索,就何以将对象恢复,做进一步使用,特别是在应用j a v a b e a n 时, 持久化使b e a n 对象的定制信息不会在应用程序结束时丢失,这一点非常重要。持久化 对象时要考虑对象中需要持久存储的信息,换句话说,并不是所有对象的属性都需要保 存,比如用来跟踪鼠标按钮等临时信息的成员变量就不需要持久化。此外,要考虑持久 对象的存储场所,持久化的对象可以存储在文件系统、数据库系统或大型事务处理系统 中。目前,在企业应用程序中,面向对象的开发方法被更广泛的用于数据库。把对象存 储到关系数据库用两种策略,一是围绕关系数据库来建立面向对象中的应用,每一个对 象,都要懂得如何存取其属性信息;二是把面向对象应用转移到关系对象中实施,以关 系表格来模拟对象。前者称为映射法,它把应用系统与数据存储分开,有利于系统的管 东北大学硕士学位论文 第二章s t r u t s 与h i b e m a t e 概述 理和扩展,是一种可行的策略。 持久层是位于0 0 应用与关系数据库之间,由一组类所构成的接口。它的作用就是 为0 0 应用建立并配置一个到关系数据库的转换机制,将0 0 应用中的对象映射到关系 数据库中,并使得关系数据库模型得改变( 例如:表的改变,列的增加等) ,均不会影响 0 0 应用中的代码,即对象在关系数据库中的存储模式对前台0 0 应用开发者是透明的, 0 0 开发人员无需知道后台所采用的关系数据库模式。通过持久层,可以把o o p l 和关 系数据库紧密地结合起来,使之能够支持具有复杂关系的大量数据查询,而且大大提高 了o o 应用开发灵活性,降低了维护成本,使得多用户、具有决策支持和在线事务处理 能力得系统开发成为可能。 2 2 2 分层的体系结构 分层的体系结构定义了实现不同关系的代码之间的接口,允许关系实现方式的改变 不会对其它层的代码造成重大的破坏。分层也决定了其间出现的中间层的类型。分层的 规则有两条:其一是层由上到下进行通信,每一层仅依赖于其直接的下层。其二是除了 其直接下层,每一层都不知道任何其它层。不同的应用以不同的概念分组,因此会定义 不同的层。一个典型的应用体系结构使用三层,分别为表示层,业务逻辑层和持久层。 如图2 1 。 图2 1 三层体系结构 f i g 2 1t r i - l a y e r e da r c h i t e c t u r e ( 1 ) 表示层( p r e s e n t a t i o nl a y e r ) 。表示层是最高层的用户接口逻辑,负责显示、页面 控制和屏幕导航的代码构成了表示层。 ( 2 ) 业务层( b u s i n e s sl a y e r ) 。业务层在不同的应用会有很大的差异,它通常是已协 - 东北大学硕士学位论文 第二章s 打u f s 与h i b e r n a t e 概述 商一致的,然而,作为问题域的一部分业务层应该被用户所理解,它负责实现任何业务 规则或系统需求。在许多系统里,这一层有它自已的啦务域实体的内部表示。 ( 3 ) 持久瑟( p e r s i s t e n c el a y e r ) 。持久层是负责扶一个或多个数据仓库中存入和取鸯 数据的一组类和组件。 ( 4 ) 数据库( d a t a b a s e ) 。数据库位于j a v a 应用之外。它是系统状态持续性的实际表 示。如果使用了一个s q l 数据库,它会包含关系模式或者存储过程。 ( 5 ) 帮助i 暴类( u t i l i t y h e l p e rc l a s s e s ) 。每个应丽都会有一组基础的帮助类或工具 类,在瘟罪的每一层它们都会被使_ 闷l 。例如,罪予异常处理豹异常类。这些基础元素并 不构成一层,因此在分层的体系结构中,它们曩;用遵守中间层的依赖规则。 2 2 3 对象关系映射 对象关系映射就是j a v a 应用中的对象到关系数据库中的表的自动的( 和透明的) 持 续化,使用数据对对蒙与数据库润的映射进行了接述。本质上,对象一关系暧射的工作 是将元数据从一萃申表示( 双向) 转换为另一种。这意味着有一些性能损失。然而,如果对 象关系映射是作为中间件来实现的,就会有许多机会可以进行优化而在手工编码的持 续层中这些机会是不存在的。另外一项开销是对与控制转换的元数据的准备与管理。而 噩,这个成本低予维护一个手工编码的解决方案所需的成本。相比之下,与o r m g 兼 容鲍对象数据库藻至需要大量类级别鲍元数据。对象- 关系映射鳃决方案有四部分维成: 其一,在持续类的对象上执行基本的c r u d 操作的一组a p i 。其二,用于指定查洵的一 种语言或一组a p i ,这些查询会引用类和类属性。其三,用于指定映射元数据的工具。 其四,实现对象,关系映射的一项技术,用来与事务对象交互以究成脏数据检查、关联 存取和其它侥化功能。使用对象。关系暌射这个术语包含所有可驵根据元数据的描述自 动生成s q l 的持久层。不包含开发者遥过编写s q l 秘使用j d b c 手工解决对象- 关系映 射问题的持久层。使用o r m g 应用与r m a p 和根据下层s q l j d b c 抽象出来的域模型 类进行交互。依赖于这些特征或特定的实现,对象- 关系映射运行时也可能承担例如乐 观锁、缓存等问题的职责,完全免去了应羽对这些问题的关心。 对象一关系映射品质的朗个级别: ( 1 ) 纯关系。整个应用,包括用户接e 1 ,都是匿绕关系模型和基于s q l 的关系操作 进行设计的。如果低水平的代码重用是可以容忍的,不考虑它对大型系统的不足,这种 方法对于简举的应用不失为一种优秀的解决方案。直接的s q l 可以在每方面进行微 调,但是这橥缺点傍j 如缺乏可移植性和可维护性是非常重要的,特别是需要长期运行时。 这耱类型的应用经常大量圭| 璧使用存储过程,将业务层豹许多工作移动到了数据瘁中。 东北太学硕士学位论文 第二章s t r u t s 与h i b e r n a t e 概述 ( 2 ) 轻! 蠹对象浚舞重。安髂终为类塞表示,两类又棱手工篷浚瓣翔关系表。手工编码 的s q l j d b c 使用众所周知的设计模式对嫩务邋辑进行了隐藏。这种方法非常普遍并且 对予鄢些只有少曩嶷体酶藏璃或者簿些健臻酱通静元数攥鹱凄浆数据模型瓣应璃柬说 是徽成功的。 ( 3 ) 中麓对象酸射。这种应瘸爨围绕对象模整设计静。s q l 在编译时使耀代磷生成 工舆嫩成,域者在运行时由框架代码生成。对象间的关联由持续性机制支掩,并且鹰询 可髓使用面向对象的表达式语言指定。对象被持久艨缓存。 ( 4 ) 完全对象睃射。完全豹对象漱射支持复杂瓣踺象模型:缀合、继承、多态和“可 达的持续魏”。持续层实现了透鹳的持续陡。持续类不必继承任褥特定的蘩类或实虢任 何特定的接口。 对象关系映射和h i b e r n a t e 的好处: ( 1 ) 生产性。h i b e r n a t e 去簿了缓多繁琐豁工 乍,搜开发者蜀以集中到撤势阍题瓣实 现上。不论开发考使鞯什么样浆寝髑开发繁貉,自瑗向下从域模型开始,或者囊底囱上 鼓一令现鸯豹数摄艨模式舞始,健爆h i b e r n a t e 郛逐墨的工其将会减少丈量的开发融趣 ( 2 ) 可维护性。更少的代码行数( l o c ) 使系统熙容易理解。震燕要的,个系统包 含豹代码越少剡越骞要鬟槐。窦麓瓣对象关系掩续蛙隽努遗减少了l o c 。然瓣, h i b e r n a t e 戏用更容翳维护鬻其它方灏豹琢闭。在手工编码瓣持续性系统中,关系表示帮 对象攘型乏海存在一静不爵避免的紧张。改变一令咒乎惑楚包鑫改变其它匏。著虽一耪 表示设计缝常需要妥协来适应其它的存在。o r m 程这两种模型之间提供h r 一个缓冲, 竞谗j a v a 一方雯钱器建避符瑟怒对蒙懿毽瓣,并嚣麓令模蘩餐对荚它模型豹轻徽改动遴 行了绝缘。 国毪能。对一顼给跫酌持续瞧毵务,霹薮遴簿诲多优诧。译多透过手工壤鹤懿 s q l j d b c 也很容翳究成,然丙,使用自动的o r m 完成会更简单。在有时间限制的项 酲审,手工编码靛持久层遗鬻亢诲开发者稀用一点辩黼骰一些霞纯。h i b e r n a t e 竞诲开发 者程全部的时间内做更多的优化。鹦外,囱动的持续性给开发者提供了高的生产性,因 诧开发者爵黻花更多翡时阕手工德亿一些蕊余的糕颟。 2 3s t r u t s 和m v c 模式 健康保险核心渡务系统项鹜采塌基于s t r u t s 框架开发瀚,茵为s t r u t sf r a m e w o r k 楚 一手巾基于j a v a 的技术,w e b 应用程序开发人员通过s t r u t sf r a m e w o r k 即可态分利用面向 对象设计,代码重用以及“编写一次,到处运行”的优点。s t r u t s 提供了稀甜建w e b 瘦蠲程痔辩捱禁,蒸中对成蠲程序黔显示、表示秘数据酌藤蝼 弋确进行了挞象。 东北大学硕士学位论文 第二章s t r u t s 与h i b e r n a t e 概遗 2 3 1s t r u t s 概述 s t r u t s 最早是作为a p a c h ej a k a r t a 项目的组成部分问世的。项目的创立者希黧通过对 该项嚣的研究,改进和提高j a v as e r v e rp a g e s ( j s p ) ,s e r v l e t 、标记痒,以及蠢向对象螅技 术水准。s t r u t s 这个名字来源于在建筑和旧式飞机中使用的金属支架。目的是为了帮助 怒户减少在运行m v c 设计模式柬开发w e b 应翅兹对潮。 2 3 2 m v c 搬述 模型一视图一控制器( m o d e lv i e wc o n t r o l e r , m v c ) 愿2 0 世鳃3 0 年代s m a l l t a l k ( - - 种 早麓静蕊螽对象编程语富) 开发者稍发骥的一葺辛软蒋设计模式,至今若被广泛缝弼。最 近几年被推荐为s u n 公司j 2 e e 平台的设计模式,并且受到越来越多的开发者的欢迎。 m v c 是种设计模式,它强铡毪圭彀使应蘑穗序遣输入、处骥和辕蠢分开。使用m v c 时,应用程序被分成三个核心部件:模型、视阁和控制器。它们各自处理自己的任务。 2 3 3m v c 模式与s t r u t s m v c 模式是国外用得比较多得一种设计模式,最早是在s m a l t a l l k 中出现的。m v c 包括三类对象:m o d e l 蹙应用对象,v i e w 是健在羼幕上的表示,c o n t r o l l e r 定义用户爨 面对用户输入的响应方式。 m v c 设计模式中的“模式”指懿楚真正完成任务的代码。对大多数w e b 斑罔程序 来说,功能比界面更重露。在模型同界面相分粥的情况下,代码即可实现可管理性和可 重用性。模型遴掌选竣称为业务逻辑+ j a v a b e a n 裁是s t r u t s 中横型的代表。对进入控制 器的每个入口点来说,b e a n 的作用是存储从视图获取的信息,同时被称为“动作类”, 一秘j a v a 类粼竣据定受难表擎竣入采取牙动。渤俘类( a c t i o n c l a s s ) 实瑷了业务逻辑。 2 4h i b e i 斟a t e 应用框架 2 4 1h i b e r n a t e 概述 h i b e r n a t e 跫j d b c 酶轻董缓稳对象封装,它是一个独立静辩蒙诗久层框絮,帮a p p s e r v e r ,和e j b 没有什么必然的联系。h i b e r n a t e 可以用在任何j d b c 研以使用的场合, 例如j a v a 应搿程序的数据库访润代鹞,d a o 缓翻静实现类,簇至可酸爱访闻数据库的 代码。从这个懑义上来说,h i b e r n a t e 和e j b 不是一个范畴的东碴,也不存在非此即彼 的关系。 h i b e r n a t e 足一个和j d b c 密切关联的框絮,所以h i b e r n a t e 的兼容性和j d b c 驱动, 东北大学硕士学位论文 第二章s t r u t s 与h i b e r n a t e 概述 和数据库都有一定的关系,但是和使用它的j a v a 程序,和a p p s e r v l e t 没有任何关系, 也不存在兼容性问题。 h i b e r n a t e 不能用来直接和e n t i t yb e a n 做对比,只有放在整个j 2 e e 项目的框架中才 能比较。并且即使是放在软件整体框架中来看,h i b e r n a t e 也是做为j d b c 的替代者出现 的,而不是e n t i t yb e a n 的替代者出现的。 系统的总体架构图如图2 2 所示。 图2 2 系统总体架构 f i g2 2s y s t e ma r c h i t e c t u r e ( 1 ) 由应用调用以完成基本的c r u d 和查询操作的接口。这些接口是应用的业务控 制逻辑对h i b e r n a t e 的主要的依赖点。它们包括s e s s i o n 、t r a n s a c t i o nq u e r y 。 ( 2 ) 由应用的底层代码调用以配置h i b e r n a t e 的接口,最重要的是c o n f i g u r a t i o n 类。 (

温馨提示

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

评论

0/150

提交评论