面向特定群体的健康管理平台设计与实现
随着网络技术的不断发展,网站的开发与运用变得更加广泛。这次采用java语言SSH框架(Spring,Struts,Hibernate)设计并实现了面向特定群体的健康管理平台。该网站主要有教师饮食管理、教师健康日志、教师体检管理、疾病预测评估等功能模块。通过该网站,教师可以更好的关注自己的体检状况以及最近的身体状况,根据自身情况调整饮食,睡眠等生活习惯,并且可以及时预测高血压以及糖尿病的患病可能性大小,以便采取有效地预防措施。
本系统采用的是典型的J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
健康管理,慢性病,Spring,Struts,Hibernate
Design and Implement of Health Management Platform for the Specific Groups
Abstract
With the continuous development of network technology , the use of web site has became more widespread. This time I use JAVA language and SSH frame (Spring , Struts , Hibernate) to design and implement the health management platform for specific groups. Dietary management of teachers, teachers’ health log, medical management for teachers, disease forecast are designed in the web. Through the site, teachers can focus on their physical condition better, also can according to their circumstances to adjust their diet, sleep habits, etc. At the same time, we can take preventive measures to avoid hypertension and diabetes effectively.
The system uses a three-tier structure called J2EE, divided into presentation layer, intermediate layer (business logic layer) and data services layer. Three-tier system put business rules, data access and legality verification work on the middle layer to process. Client does not establish a direct interaction with database, but make connections with the middle tier by components and then interacts with the database on the middle layer .
Keywords: Healthy Manage , Chronic disease , Spring , Struts , Hibernate
目 录
1引言.............................................................. 1
1.1设计背景........................................................ 1
1.2设计目的和意义.................................................. 1
1.3 国内外研究现状............................................. 2
2 系统需求分析..................................................... 3
2.1系统目标........................................................ 3
2.2 系统功能要求................................................... 3
2.2.1前台功能................................................. 3
2.2.2后台功能................................................. 4
2.3 系统性能要求................................................... 4
2.4系统数据要求............................................... 4
2.4.1数据的性质............................................... 4
2.4.2数据字典................................................. 5
2.4.3实体联系图............................................... 6
3 系统设计......................................................... 9
3.1 开发工具介绍................................................... 9
3.1.1 My eclipse介绍............................................... 9
3.1.2 Oracle介绍................................................... 9
3.2开发技术介绍.............................................. 10
3.2.1 Struts 2介绍........................................... 10
3.2.2 Spring介绍............................................. 11
3.2.3 Hibernate介绍.......................................... 11
3.2.4 Jsp介绍................................................ 12
3.2.5 Jquery介绍............................................. 12
3.2.6 Dwr(Ajax)介绍........................................... 13
3.3 系统架构设计.................................................. 13
3.3.1 Hibernate持久化............................................. 15
3.3.2 Service层................................................... 16
4 系统概要设计.................................................... 17
4.1系统体系结构................................................... 17
4.1.1 设计原则............................................... 17
4.1.2 运行架构............................................... 17
4.2 网站功能结构............................................. 18
4.3数据库表设计................................................... 19
4.3.1 数据库详细设计.......................................... 19
4.3.2 数据库逻辑结构设计...................................... 19
4.3.3 数据库表设计............................................ 20
4.4 信息安全设计............................................. 21
4.4.1 网络安全............................................... 22
4.4.2 其他安全............................................... 22
5详细设计................................................... 23
5.1 系统流程图............................................... 23
5.2 前台主页界面设计.......................................... 23
5.2.1前台主页功能设计........................................ 23
5.2.2教师饮食管理功能设计..................................... 24
5.2.3教师健康日志功能设计..................................... 25
5.2.4教师体检管理功能设计..................................... 26
5.2.5疾病预测评估功能设计..................................... 27
5.2.6注册功能设计............................................ 28
5.3后台主页界面设计.......................................... 29
5.3.1管理员用户登录功能....................................... 29
5.3.2管理管理员功能.......................................... 30
5.3.3管理员管理体检结果....................................... 31
5.3.4管理员管理健康新闻....................................... 32
5.3.5管理员管理教师功能....................................... 33
6 系统测试........................................................ 34
6.1编写测试用例.............................................. 34
6.2单元测试................................................. 34
6.3系统和集成测试............................................ 35
7 结论............................................................ 36
参 考 文 献....................................................... 37
致 谢............................................................ 38
1 引言
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) 中间基础平台的无型性。尽量采用开放的标准技术,达到跨平台运行的效果。
为了达到以上的开发目的,健康管理平台应遵循一定的设计和开发与原则:
1) 模块接口定义清晰;
2) 基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类;
3) 数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度;
4) 采用开放的标准和工具等。
2.2 系统的功能要求
2.2.1 前台功能
在前台的功能实现上,可以分为以下几个部分:
1.教师饮食管理:根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。
2.教师健康日志:用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。
3.教师体检管理:教师可通过该平台查询每次的体检结果,显示部分项目随时间变化的曲线。
4.疾病预测评估:针对糖尿病和高血压两种疾病,利用数学线性回归的方法,模拟计算出教师患病概率。
2.2.2 后台功能
后台主要有四个功能:
1.管理员用户登录功能:通过编号登录系统。
2.管理员管理教师功能:可以增删改查教师基本信息。
3.管理员管理体检结果:可以增删改查教师体检记录。
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)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在 MVC 的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应 Struts 里的ActionForm与Action两个需要继承实现超类。在这里,Struts 可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB),JDBC与JNDI。在Struts的视图(View) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。
在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(写得更少,做得更多)。jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
3.2.6 DWR(Ajax)介绍
AJAX 指异步JavaScript及XML(AsynchronousJavascript+XML)。核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面;可使因特网应用程序更小、更快,更友好;是一种独立于 Web 服务器软件的浏览器技术。DWR它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容。DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码。这样WEB开发人员就可以在JavaScript里使用Java代码,就像它们是浏览器的本地代码一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源。
3.3 系统架构设计
本系统采用严格的J2EE 应用结构,主要有如下几个分层。
- 表现层:由JSP 页面组成。
- MVC 层:使用Struts框架。
- 业务逻辑层:主要由Spring loc 容器管理的业务逻辑组件组成。
- DAO 层:由 DAO 组件组成,实现类必须继承Spring提供的Hibernate Dao Support。
- Hibernate 持久层:由 PO 组成,并在Hibernate Session 管理下,完成数据库访问。
- 数据库服务层:使用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 无缝整合,其数据服务层用来存放数据。
3.3.1 Hibernate持久化
通过使用Hibernate 持久层,可以避免使用传统的JDBC 操作数据库,对JDBC近一步包装,从而更好地使用面向对象的方式来操作数据库。保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、设计及编程,透过Hibernate 对PO对象持久化操作,不管插入还是查询都是通过PO。
在Hibernate 持久层之上,可使用DAO 组件再次封装数据库操作。通过DAO 层,可以让业务逻辑层与具体持久层技术分离,一旦需要更换持久层技术时,业务逻辑层组件不需要任何改变。因此,使用DAO 组件,即意味着引入DAO 模式,使每个DAO 组件包含了数据库的访问逻辑:每个DAO 组件可对一个数据库表完成基本的CRUD 等操作。
DAO 模式的实现至少需要如下三个部分:
1. DAO 工厂类。
2. DAO 接口。
3. DAO 接口的实现类。DAO 模式是一种更符合软件工程的开发方式,使用DAO 模式有如下理由:
- DAO 模式抽象出数据访问方式,业务逻辑组件无须理会底层的数据库访问,而只专注于业务逻辑的实现。
- DAO 将数据访问集中在独立的一层,所有的数据访问都由DAO 对象完成,这层独立的DAO 分离了数据访问的实现与其他业务逻辑,使得系统更具可维护性。
- DAO 还有助于提升系统的可移植性。独立的DAO 层使得系统能在不同的数据库之间轻易切换,底层的数据库实现对于业务逻辑组件是透明的。数据库移植时仅仅影响DAO 层,不同数据库的切换不会影响业务逻辑组件,因此提高了系统的可复用性。
对于不同的持久层技术,Spring 的DAO 提供一个DAO 模板,将通用的操作放在模板里完成,而对于特定的操作,则通过回调接口完成。
3.3.2 Service层
Service 组件采用正面模式封装多个DAO 组件, DAO 对象与Service 组件之间的关Service 组件需要实现的业务方法主要取决于业务的需要,通常需要在业务组件中包含对应的方法。
业务层组件的实现业务层组件与具体的数据库访问技术分离,使所有的数据库访问依赖于DAO 组件,定义一个Facade Manager Impl来包装7个Dao这样就可以把逻辑层和Dao分开,达到松散耦合的效果。事务管理将推迟到Service组件而不是DAO 组件,因为只有对业务逻辑方法添加事务才有实际的意义,对于单个DAO方法(基本的CRUD 方法)增加事务操作是没有太大实际意义的。关于事务属性的配置,本系统使用Spring 提供的Transaction Proxy Factory Bean配置事务代理。这样不必为每个目标对象配置代理bean;避免了目标对象被直接调用。部署业务层组件单独配置系统的业务逻辑层,可避免因配置文件过大引起配置文件难以阅读。将配置文件按层和模块分开配置,可以提高Spring 配置文件的可读性和可理解性。在application Context.xml 配置文件中配置数据源、事务管理器、业务逻辑组件和事务管理器等bean[10]。
4 系统概要设计
4.1 系统体系结构
基于B/S结构的健康管理平台,应由终端(用户主机/浏览器)、WEB服务器、数据服务器构成。健康管理平台的核心是中间的接入服务器和应用服务器部分。健康管理平台的总体结构图如图4.1所示:
图4.1 健康管理平台总体结构
4.1.1 设计原则
在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。
本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI及J2EE等模式。相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统,所以选择Java技术作为健康平台的开发工具。
4.1.2 运行架构
首先要对系统进行分析,确定对系统的综合要求,分析系统的数据要求,导出系统的逻辑模型。再对系统分析后确定系统的模块,对每个模块进行研究,这也是该系统的一个主要解决的地方。本系统包括了用户,管理员等很多信息,所以对该系统要建立数据库。管理系统是基于WEB的,所以需要一定的网页支持以及与数据库的连接。该系统主要是以JSP技术为主来开发的,所以要对该技术进行了解,学习。除此之外采用的技术和环境要求如下:
数据库访问:oracle数据库
服务器访问:Tomcat系列服务器
网页编程技术:DIV+CSS、JAVASCRIPT、AJAX等
后台处理技术:Struts2+Hibernate+Spring
硬件需求:PIII/512M/10G 及以上配置
操作系统:Windows2000及以上操作系统
毕业设计下载地址:
基于java的健康管理系统毕业设计(项目报告+开题报告+答辩PPT+源代码+数据库+部署视频)
☞☞☞点击查看项目整体介绍 https://download.csdn.net/download/dwf1354046363/87813549
更有100多毕业设计项目供你挑选: