基于JavaWeb的健康管理平台(源码+论⽂)
1.1 设计背景
紧张的⼯作节奏、教学和科研的压⼒、个⼈不良的⼯作⽣活习惯、以及伴随⼯作压⼒⽽来的家庭关系、⼈际关系紧张等因素使得⾼校体成为慢性病的⾼发体[1]。学⽣⼊学的定期体检,教职⼯⼈⼊职体检,以及所有学⽣和教职⼯的定期体检⼯作,甚⾄个⼈⾃愿定期进⾏⾝体健康检查等都离不开医院的体检。⼈们对体检⼯作越来越重视,⽬前,传统的体检⼀直延⽤⼿⼯管理的⽅式,对健康信息的可视化平台需求迫切。
实现对健康信息分析的可视化,根据⾼危⼈的⽇常⾏为,建⽴由此引发的发病概率预测模型,对⾼危⼈做出相应的⾏为⼲预。健康管理平台不仅包含对个体健康曲线的可视化,同时包含对某体健康曲线的可视化及预测,并以此为基础对个体⽇常⾏为的⼲预显⽰,以此为背景我选择设计健康管理平台
1.2 设计⽬的和意义
健康管理既是⼀个概念,也是⼀种⽅法,更是⼀套完善、周密的服务程序,其⽬的在于使病⼈以及健康⼈更好地拥有健康、恢复健康、促进健康并尽量节约经费开⽀,有效降低医疗⽀出。健康管理有如下⼏⼤作⽤:⼀是可以了解居民的⾝体年龄,判断疾病指向;⼆是可以根据⽇常⾏为判断发病概率,以此为
基础由医⽣提供降低慢性病发⽣危险性的⾏为⼲预⽅案;三是可以长期(终⽣)跟踪⾼危⼈的健康,最⼤限度减少重⼤疾病的发⽣;四是可以节省维护健康的时间和⾦钱,提⾼保健效率[2]。
建⽴⾯向教师的健康管理平台的⽬的,对于个⼈,是如何利⽤健康体检系统中的信息为⼈们的健康保驾护航。⽽健康信息信息管理系统的管理和利⽤,不仅需要具备基础医学知识、临床医学知识、流⾏病学知识、计算机技术、数学统计知识等综合素质的专业⼈员,同时需要有庞⼤的保健医学、预防医学、临床医学、康复医学等专业的资深专家团队的⽀持,才能够为个⼈提供⼀系列的健康管理服务。
当今世界,信息管理数字化⾮计算机莫属,只有利⽤计算机技术,使⽤我国各个⾼校统⼀标准的健康体检系统表格,开发⾼校健康体检系统的系统软件,设置教师健康体检系统的计算机编号,制作教师的健康体检档案,并详细记录其本次体检程中所发现的健康问题和处理情况等,实现⽤户的健康体检系统信息在学校范围内的⽹络信息交换和共享,利⽤计算机技术,对⽤户的健康体检系统实现连续的动态管理。健康信息管理系统以计算机为⼯具,通过对⽤户体检所得的数据进⾏信息管理,把管理⼈员从繁琐的数据计算处理中解脱出来,为更好的帮组⽤户⾝体健康监督检查,从⽽全⾯提⾼质量。具体通过本系统可以对⽤户的基本健康状况进⾏各种必要的统计和分析[3]。
本项⽬将针对⾼校体研发多模态的健康数据采集系统,对历年体检数据、就诊数据、膳⾷结构、⽣活习惯等健康相关信息建⽴统⼀管理系统,并在此基础上采⽤数据挖掘⽅法对诸如⼼⾎管疾病、⾼⾎
压、糖尿病等慢性病进⾏有效建模与评估,对⾼校体内⼴泛存在的亚健康状态进⾏综合客观评价和风险预测,最终实现针对⾼校体慢性病患者及其⾼危⼈的动态跟踪健康管理与⼲预。
1.3 国内外研究现状
健康管理的概念最早见于美国,早在1929年美国洛杉矶⽔利局就成⽴了最早的健康维护组织。早在20世纪70年代的美国,由于健康保险的发展以及医疗服务模式的改变,要求医⽣能更好地指导病⼈进⾏疾病预防以及更加节省医疗费⽤。健康服务组织通过对⼈的健康状况进⾏评价和疾病的风险评估,科学预测疾病的危险因素,制定具体的、有针对性的预防和保健措施。通过健康管理美国的医疗费⽐以前节省了⼤约10%,同时避免了疾病的发⽣,提⾼了⽣活质量。资料显⽰,通过健康管理计划,在1978-1983年,美国⼈的胆固醇⽔平下降了2%;⾼⾎压⽔平下降了4%;冠⼼病发病率下降了16%。美国密执安⼤学健康管理研究中⼼主任第·艾⿍敦博⼠(Dee.W.Edington)曾经提出美国20多年的研究得出了9:1定律结论,即90%的⼈通过健康管理后,医疗费⽤降到了原来的10%;10%的⼈未做健康管理,医疗费⽤⽐原来上升了90%。通过经济学分析发现,在健康管理⽅⾯投⼊1元钱,相当于减少3-6元医疗费⽤的开销。如果加上由此产⽣的劳动⽣产率提⾼的回报,实际效益达到投⼊的8倍[4]。
健康管理在中国刚刚起步,是⼀个朝阳的产业。⽬前在中国⼤陆地区仅有少数专业的健康管理机构,⼤部分为医院及体检中⼼的附属部门。健康管理的从业⼈数没有准确的数据,估计全国在10万⼈以上,
也就是说我国享受科学、专业的健康管理服务的⼈数只占⼈⼝总数的万分之⼆,这⼀⽐例与美国70%居民能够在健康管理公司或企业接受完善的服务相去甚远。⽽且⽬前健康管理仍然主要依赖于简单的单次体检或就诊数据由医⽣提供⼀些⽣活习惯的建议和意见,并没有把个⼈的历史病历以及⽇常⾏为对个⼈慢性病的影响考虑进去。此外,⽬前的健康管理也主要是针对已患病的患者,还未做到“早筛选、早预防、早发现、早诊断”的动态追踪的健康管理模式。
2 系统需求分析
2.1 系统⽬标
健康管理平台的总⽬标是:在计算机⽹络,数据库和先进的开发平台上,利⽤现有的软件,配置⼀定的硬件,开发⼀个具有开放体系结构的、易扩充的、易维护的、具有良好⼈机交互界⾯的教师健康管理平台。
具体的要求如下:
1. 教师可以⽅便的使⽤五⼤基本功能;
2. 独⽴于具体的数据库平台。对于与数据库交互的部分充分考虑兼容性;
3. 容易在原先基础上进⾏⼆次开发;
4. 中间基础平台的⽆型性。尽量采⽤开放的标准技术,达到跨平台运⾏的效果。
为了达到以上的开发⽬的,健康管理平台应遵循⼀定的设计和开发与原则:
5. 模块接⼝定义清晰;
6. 基础类库和接⼝设计合理,尽量建⽴叮扩展的接⼝和抽象类;
7. 数据库操作使⽤标准SQL语句,如果⼀定要使⽤有差别的SQL语句,则尽量集中在⼀起,以减少将来维护和移植的难度;
8. 采⽤开放的标准和⼯具等。
2.2 系统的功能要求
2.2.1 前台功能
在前台的功能实现上,可以分为以下⼏个部分:
1.教师饮⾷管理:根据教师的相关信息,计算其每天所需热量,给出⼀周的推荐菜单。
2.教师健康⽇志:⽤户可以记录⾃⼰健康⽇记,记录每⼀天的睡眠,饮酒,吸烟,⾎压,体重等情况。
3.教师体检管理:教师可通过该平台查询每次的体检结果,显⽰部分项⽬随时间变化的曲线。
4.疾病预测评估:针对糖尿病和⾼⾎压两种疾病,利⽤数学线性回归的⽅法,模拟计算出教师患病概率。
2.2.2 后台功能
后台主要有四个功能:
1.管理员⽤户登录功能:通过编号登录系统。
2.管理员管理教师功能:可以增删改查教师基本信息。
3.管理员管理体检结果:可以增删改查教师体检记录。
4.管理员管理健康新闻:可以发布或删除新闻。
2.3 系统的性能需求
健康管理平台的特性要求⽹站系统需要具备以下⼏个主要特性:
1. 多样性:健康管理平台在设计时必须遵循的⼀个重要原则,就是以⽤户为系统设计的中⼼。⽹络的发展⼤⼤降低了信息咨询的成本,
⽤户⾯临更多的选择,所以,健康管理平台除了降低成本以外,还必须在外观,功能的多样性上下⼯夫,才能够得到⽤户的认可。具体来说,应⽤系统应能实现⽤户特定的需求,操作界⾯友好、⽅便,功能设置符合⽤户的习惯和要求。
2. 易维护:管理员能够简单⽅便地管理系统,定义新的应⽤,并对系统进⾏⽇常维护;随着健康管理平台信息的变更或增加、数据规模
的增⼤,系统升级、维护应易于操作;各⼦系统、功能模块的设计应具有良好的灵活性,保证在健康管理平台系统建设过程中后期系统功能的实现不影响前期已投⼊使⽤的系统功能。
3. 安全性:系统应充分考虑信息、设备、运⾏和管理的安全性,建⽴完善的多层次的安全保障体系,保证⽤户的个⼈信息等资料的数据
安全。
4. 可扩展:健康管理平台的⽤户从事着各种⾏业,他们的需求各不相同,系统在设计时应充分考虑到⽤户需求不断变化的需要,降低系
统在扩展新的业务功能时的复杂度[5]。
2.4 系统的数据要求
2.4.1 数据的性质
1. 数据录⼊和处理的准确性和实时性。
数据的输⼊是否准确是数据处理的前提,错误的输⼊会导致系统输出的不正确和不可⽤,从⽽使系统的⼯作失去意义。数据的输⼊来源是⽤户的⼿⼯输⼊。⼿⼯输⼊要通过系统界⾯上的安排系统具有容错性,并且对⽤户操作进⾏实时的跟踪和错误提⽰。
在系统中,数据的输⼊往往是⼤量的,因此系统要有⼀定的处理能⼒,以保证迅速的处理数据。
2. 数据的⼀致性与完整性。
由于⽹站的数据是共享的,所以如何保证这些数据的⼀致性,是⽹站必须解决的问题。要解决这⼀问
题,要有⼀定的⼈员维护数据的⼀致性,在数据录⼊处控制数据的去向,并且要求对数据库的数据完整性进⾏严格的约束。
对于输⼊的数据,要为其定义完整性规则,如果不能符合完整性约束,⽹站应该拒绝该数据。
3. 数据的共享与独⽴性。
整个健康管理平台的数据是共享的。然⽽,从⽹站开发的⾓度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独⽴运⾏,⽽通过⼈⼯⼲预的⼿段进⾏系统数据的交换。这样,也能提供系统的强壮性。
2.4.2 数据字典
健康管理平台主要涉及到真实姓名数据字典,如表2.1所⽰:
表2.1 真实姓名数据字典
⽤户注册界⾯涉及到电话的数据字典,如表2.2所⽰:
表2.2 电话数据字典
⽤户注册界⾯涉及到邮箱的数据字典,如表2.3所⽰:
表2.3 邮箱数据字典
2.4.3 实体联系图
健康管理平台主要涉及的实体联系图有六个,实体有Teacher、Manager、Food、
Notice、Exam、Dairy。
图2.1 教师E-R图
图2.2 ⾷物E-R图
图2.3 新闻E-R图
图2.4 体检 E-R图
图2.5 管理员 E-R图
图2.6 ⽇志 E-R图
3 系统设计
3.1 开发⼯具介绍
3.1.1 My Eclipse 介绍
My Eclipse企业级⼯作平台(MyEclipseEnterprise Workbench ,简称My Eclipse)是对EclipseIDE的扩展,利⽤它我们可以在数据库和Java EE的开发、发布以及应⽤程序服务器的整合⽅⾯极⼤的提⾼⼯作效率。它是功能丰富的Java EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整⽀持HTML,Struts,JSP,CSS,SQL,Javascript,Spring,Hibernate。
My Eclipse 是⼀个⼗分优秀的⽤于开发Java, J2EE的 Eclipse 插件集合,My Eclipse的功能⾮常强⼤,⽀持也⼗分⼴泛,尤其是对各种开源产品的⽀持⼗分不错。My Eclipse⽬前⽀持Java Servlet , AJAX, JSP, JSF, Struts, Spring, Hibernate, EJB3,JDBC数据库链接⼯具等多项功能。My Eclipse⼏乎囊括了⽬前所有主流开源产品的专属eclipse开发⼯具[6]。
My Eclipse 2013⽀持HTML5、JQuery 和主流的JavaScript 库。随着My Eclipse 2013⽀持Html5,可以添加⾳频、视频和API元素到项⽬,从⽽为移动设备创建复杂的Web应⽤程序。甚⾄还可以通过HTML5 可视化设计器设计令⼈难以置信的⽤户界⾯。同时,随着My Eclipse 2013⽀持JQuery,可以通过插件提升性能,并添加动画效果到设计中。
3.1.2 Oracle 介绍
Oracle数据库系统是美国ORACLE公司(甲⾻⽂)提供的以分布式数据库为核⼼的⼀组软件产品,是⽬前最流⾏的客户/服务器
(CLIENT/SERVER)或B/S体系结构的数据库之⼀。⽐如Silver Stream就是基于数据库的⼀种中间件。ORACLE数据库是⽬前世界上使⽤最为⼴泛的数据库管理系统,作为⼀个通⽤的数据库系统,它具有完整的数据管理功能;作为⼀个关系数据库,它是⼀个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引⼊了⼀个新的多承租⽅架构,使⽤该架构可轻松部署和管理数据库云。此外,⼀些创新特性可最⼤限度地提⾼资源使⽤率和灵活性,如Oracle Multitenant可快速整合多个数据库,⽽Automatic Data Optimization和Heat Map能以更⾼的密度压缩数据和对数据分层。这些独⼀⽆⼆的技术进步再加上在可⽤性、安全性和⼤数据⽀持⽅⾯的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台[7]。
3.2 开发技术介绍
3.2.1 Struts2
Struts是 Apache软件基⾦会(ASF)赞助的⼀个开源项⽬。它最初是 Jakarta项⽬中的⼀个⼦项⽬,并在2004年3⽉成为ASF的顶级项⽬。它通过采⽤ Java Servlet/JSP 技术,实现了基于Java EE的Web应⽤的MVC设计模式的应⽤框架,是MVC经典设计模式中的⼀个经典产品。
在Struts 中,已经由⼀个名为ActionServle的 Servlet 充当控制器(Controller)的⾓⾊,根据描述模型、视图、控制器对应关系的l的配置⽂件,转发视图(View)的请求,组装响应数据模型(Model)。在 MVC 的模型(Model)部分,经常划分为两个主要⼦系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念⼦系统分别具体对应 Struts ⾥的ActionForm与Action两个需要继
承实现超类。在这⾥,Struts 可以与各种标准的数据访问技术结合在⼀起,包括Enterprise Java Beans(EJB),JDBC与JNDI。在
Struts的视图(View) 端,除了使⽤标准的JavaServer Pages(JSP)以外,还提供了⼤量的标签库使⽤,同时也可以与其他表现层组件技术(产品)进⾏整合,⽐如 Velocity Templates,XSLT 等。通过应⽤ Struts 的框架,最终⽤户可以把⼤部分的关注点放在⾃⼰的业务逻辑(Action)与 映射关系的配置⽂件(l)中。
在Java EE的Web应⽤发展的初期,除了使⽤Servlet技术以外,普遍是在JavaServer Pages(JSP)的源
代码中,采⽤HTML与Java代码混合的⽅式进⾏开发。因为这两种⽅式不可避免的要把表现与业务逻辑代码混合在⼀起,都给前期开发与后期维护带来巨⼤的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采⽤了MVC的设计模式开发Struts。后来该框架产品⼀度被认为是最⼴泛、最流⾏JAVA的WEB应⽤框架。2006年,WebWork与Struts这两个优秀的Java EE Web框架(Web Framework〕的团体,决定合作共同开发⼀个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名
为“Struts 2”,原Struts的1.x 版本产品称为“Struts 1”。
其全新的Struts 2的体系结构与Struts 1的体系结构差别巨⼤。Struts 2以WebWork为核⼼,采⽤的机制来处理⽤户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太⼤的变化,但是相对于WebWork,Struts 2的变化很⼩。
3.2.2 Spring 介绍
2002 年wrox 出版了《Expert one on one J2EE design and development》⼀书。该书的作者是Rod Johnson。在书中, Johnson 对传统的J2EE 架构提出深层次的思考和质疑。并提出J2EE 的实⽤主义思想。2003 年, J2EE 领域出现⼀个新的框架: Spring ,该框架同样出⾃Johnson 之⼿。事实上,
Spring 框架是《Expert one on one J2EE design and development》⼀书中思想的全⾯体现和完善, Spring 对实⽤主义J2EE 思想进⼀步改造和扩充,使其发展成更开放、清晰、全⾯及⾼效的开发框架。⼀经推出,就得到众多开发者的拥戴。传统J2EE 应⽤的开发效率低,应⽤服务器⼚商对各种技术的⽀持并没有真正统⼀,导致J2EE 的应⽤并没有真正实现Write Once 及Run Anywhere 的承诺。Spring 作为开源的中间件,独⽴于各种应⽤服务器,甚⾄⽆须应⽤服务器的⽀持,也能提供应⽤服务器的功能,如声明式事务等。Spring 致⼒于J2EE 应⽤的各层的解决⽅案,⽽不是仅仅专注于某⼀层的⽅案。可以说Spring 是企业应⽤开发的"⼀站式"选择,并贯穿表现层、业务层及持久层。然⽽,Spring 并不想取代那些已有的框架,⽽与它们⽆缝地整合[8]。总结起来,Spring 有如下优点:
1.低侵⼊式设计,代码污染极低。
2.独⽴于各种应⽤服务器,可以真正实现Write Once, Run Anywhere 的承诺。
3.Spring 的DI 机制降低了业务对象替换的复杂性。
4.Spring 并不完全依赖于Spring ,开发者可⾃由选⽤Spring 框架的部分或全部。
3.2.3 Hibernate 介绍
Hibernate 是⽬前最流⾏的ORM 框架,其采⽤⾮常优雅的⽅式将SQL 操作完全包装成对象化的操作。
其作者Gavin King 在持久层设计上极富经验,采⽤⾮常少的代码实现了整个框架,同时完全开放源代码,即使偶尔遇到⽆法理解的情况,也可以参照源代码来理解其在持久层上灵巧⽽智能的设计。下⾯通过对⽐来了解Hibernate 和传统JDBC 操作数据库持久层之间的差异[9]。
3.2.4 JSP 介绍
JSP是由SunMicrosystems公司倡导、许多公司参与⼀起建⽴的⼀种动态技术标准。在传统的⽹页HTML⽂件(.htm,.html)中加⼊Java程序⽚段(Scriptlet)和JSP标签,就构成了JSP⽹页java程序⽚段可以操纵数据库、重新定向⽹页以及发送E-mail等,实现建⽴动态⽹站所需要的功能。所有程序操作都在服务器端执⾏,⽹络上传送给客户端的仅是得到的结果,这样⼤ ⼤降低了对客户浏览器的要求,即使客户浏览器端不⽀持Java,也可以访问JSP⽹页。
JSP全名为Java Server Pages,其根本是⼀个简化的Servlet设计,他实现了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet ⼀样,是在服务器端执⾏的。通常返回给客户端的就是⼀个HTML⽂本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP⽹页的请求时,⾸先执⾏其中的程序段,然后将执⾏结果连同JSP⽂件中的HTML代码⼀起返回给客户端。插⼊的Java程序段可以操作数据库、重新定向⽹页等,以实现建⽴动态⽹页所需要的功能。
JSP技术使⽤Java编程语⾔编写类XML的tags和scriptlets,来封装产⽣动态⽹页的处理逻辑。⽹页还
能通过tags和scriptlets访问存在于服务端的资源的应⽤逻辑。JSP将⽹页逻辑与⽹页设计的显⽰分离,⽀持可重⽤的基于组件的设计,使基于Web的应⽤程序的开发变得迅速和容易。 JSP(JavaServer Pages)是⼀种动态页⾯技术,它的主要⽬的是将表⽰逻辑从Servlet中分离出来。
JSP页⾯由HTML代码和嵌⼊其中的Java代码所组成。服务器在页⾯被客户端请求以后对这些Java代码进⾏处理,然后将⽣成的HTML页⾯返回给客户端的浏览器。Java Servlet是JSP的技术基础,⽽且⼤型的Web应⽤程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易⽤,完全的⾯向对象,具有平台⽆关性且安全可靠,主要⾯向因特⽹的所有特点。
3.2.5 Jquery(JavaScript) 介绍
JavaScript是⼀种基于对象和事件驱动并具有相对安全性的客户端脚本语⾔。同时也是⼀种⼴泛⽤于客户端Web开发的脚本语⾔,常⽤来给HTML(标准通⽤标记语⾔的⼦集)⽹页添加动态功能,⽐如响应⽤户的各种操作。它最初由⽹景公司(Netscape)的Brendan Eich设计,是⼀种动态、弱类型、基于原型的语⾔,内置⽀持类。JavaScript是Sun公司(已被oracle收购)的注册商标。Ecma国际以JavaScript 为基础制定了ECMAScript标准。JavaScript也可以⽤于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,⽂档对象模型,浏览器对象模型。
jQuery是⼀个兼容多浏览器的javascript框架,核⼼理念是write less,do more(写得更少,做得更多)。j
Query是免费、开源的,使⽤MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作⽂档对象、选择DOM元素、制作动画效果、事件处理、使⽤Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使⽤⽅式使开发者可以很轻松的开发出功能强⼤的静态或动态⽹页。
3.2.6 DWR(Ajax)介绍
AJAX 指异步JavaScript及XML(AsynchronousJavascript+XML)。核⼼是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中⾸次引⼊,它是⼀种⽀持异步请求的技术。简⽽⾔之,XmlHttpRequest使您可以使⽤JavaScript向服务器提出请求并处理响应,⽽不阻塞⽤户。
java技术专家
AJAX不是⼀种新的编程语⾔,⽽是⼀种⽤于创建更好更快以及交互性更强的 Web 应⽤程序的技术。在浏览器与 Web 服务器之间使⽤异步数据传输(HTTP 请求),这样就可使⽹页从服务器请求少量的信息,⽽不是整个页⾯;可使因特⽹应⽤程序更⼩、更快,更友好;是⼀种独⽴于 Web 服务器软件的浏览器技术。DWR它包含两个主要的部分:允许JavaScript从WEB服务器上⼀个遵循了AJAX原则的Servlet中获取数据.另外⼀⽅⾯⼀个JavaScript库可以帮助⽹站开发⼈员轻松地利⽤获取的数据来动态改变⽹页的内容。DWR采取了⼀个类似AJAX 的新⽅法来动态⽣成基于JAVA类的JavaScript代码。这样WEB开发⼈员就可以在JavaScript⾥使⽤Java代码,就像它们是浏览器的本地代码⼀样;但是Java代码运⾏在WEB服务器端⽽且可以⾃由访问WEB 服务器的资源。
3.3 系统架构设计
本系统采⽤严格的J2EE 应⽤结构,主要有如下⼏个分层。
1. 表现层:由JSP 页⾯组成。
2. MVC 层:使⽤Struts框架。
3. 业务逻辑层:主要由Spring loc 容器管理的业务逻辑组件组成。
4. DAO 层:由 DAO 组件组成,实现类必须继承Spring提供的Hibernate Dao Support。
5. Hibernate 持久层:由 PO 组成,并在Hibernate Session 管理下,完成数据库访问。
6. 数据库服务层:使⽤Oracle 数据库存储持久化数据。
系统的具体分层如图3.1所⽰:
图3.1 系统结构图
在图3.1⿊⾊⼤⽅框内的MVC 控制层、Service 层及DAO 组件层的组件,都由Spring IOC 容器负责⽣成,并管理组件的实例。
本系统不仅严格按MVC 模式设计,还按J2EE分层设计,将中间层严格分成业务逻辑层、DAO 层及数据持久层等。MVC 层的控制器绝对禁⽌持久层访问,甚⾄不参与业务逻辑的实现。表现层采⽤传统JSP 技术。
本系统采⽤的是典型的J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等⼯作放在中间层处理。客户端不直接与数据库交互,⽽是通过组件与中间层建⽴连接,再由中间层与数据库交互。JSP⼴泛的应⽤和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采⽤的是流⾏的Spring + Hibernate ,为了将控制层与业务逻辑层分离,⼜细分为以下⼏种:
Web 层,就是MVC 模式⾥⾯的C,负责逻辑层和表现层的交互。调⽤业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC采⽤Struts框架。
Service 层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO 层为基础,通过对DAO 组件的正⾯模式包装,完完成系统所要求的业务逻辑。
DAO 层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。
PO ,持久化对象。通过实体关系映射⼯具将关系型数据库的数据映射成对象,很⽅便地实现以⾯向
对象⽅式操作数据库,该系统采⽤Hibernate 作为ORM 框架。Spring 的作⽤贯穿了整个中间层,将Web 层、Service 层、DAO 层及PO ⽆缝整合,其数据服务层⽤来存放数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。