《基于ssh的宠物管理系统的设计与实现本科毕业论文.docx》由会员分享,可在线阅读,更多相关《基于ssh的宠物管理系统的设计与实现本科毕业论文.docx(154页珍藏版)》请在三一文库上搜索。
1、基于SSH的宠物管理系统设计与实现 基于SSH的宠物管理系统设计与实现 摘要二十一世纪是一个集数字化,网络化,信息技术为一体,以网络为中心的社会。中国网民充分领略“畅游天际间,网络无极限”所带来的乐趣。随着互联网的飞速发展,网络应用日益广泛。如电子商务,电子政务,医疗,网上娱乐,网上游戏,网络教学等。在宠物管理系统的设计过程中结合运用了SSH技术,实现一套适合中小型社区管理宠物的系统。宠物管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序具有功能完备,易使用等特
2、点。经过分析,我们使用 Java平台作为开发环境,后台采用MySQL数据库,经历了一个比较完整的开发过程。本系统界面简单,直观,易于操作和使用,完全基于互联网的互动性。首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成满意的可行系统。最后,采用用例方法对系统进行了测试,保证了系统的可用性。本篇论文就毕业设计的内容,系统地阐述了整个宠物管理系统的功能的设计和实现。关键词:宠物管理,Java语言,MySQL数据库,SSH框架THE DESIGN AND DEVELOPMENT OF THE PET MANAGEMENT SYSTEMABSTRACTThe 2
3、1st century is a set of digital, networked, information technology, to network-centric society. Internet users in China to fully appreciate the swim between heaven and earth, the network has no limit to bring the fun. With the rapid development of Internet, the increasingly wide range of network app
4、lications. Such as e-commerce, e-government, healthcare, online entertainment, online games, network teaching. The design process of pet management system combined with the use of the SSH technology, to achieve a suitable system of small and medium-sized community-based management of pets. Pet manag
5、ement system is a typical information management system, its development include two parts of the establishment and maintenance of the back-end database and application development of front-end. For the former requirement to establish consistency and integrity, good security database. For the latter
6、 requires the application has a fully functional, and easy to use. After analysis, we use the Java platform as a development environment, MySQL database as back-end, has experience a complete development process.The system interface is simple, intuitive, easy to operate and easy to use, fully based
7、on the interaction of Internet.First in a short time to establish a system application demand for iterative prototype, and then, the initial prototype system, constantly revised and improved until a satisfactory viable system. Finally, using the use case method to test the system , and to ensure the
8、 availability of the system. In this thesis, graduate design, systematically expounds the design and implementation of the function of the entire pet management system in the contents of the graduate design.Key words: Pet management, Java language, MySQL database, SSH frame146目录1绪论31.1 课题开发背景31.2 课题
9、研究现状31.3 课题研究内容31.4 本文组成结构32关键技术介绍32.1 MVC模式32.2 SSH框架32.3 Struts2 简介32.4 Spring 简介32.5 Hibernate简介32.6 Jsp技术简介32.7 MySQL简介32.8 B/S结构32.9 本章小结33 系统需求分析33.1 任务概述33.2 用户特点33.3宠物管理系统功能需求33.4 宠物管理系统界面需求33.5 宠物管理系统操作需求33.6 宠物管理系统的其他需求33.7 本章小结34 宠物管理系统设计34.1 宠物管理系统功能设计目标34.2 宠物管理系统的总体设计34.3 系统详细功能设计以及总体结
10、构图34.4 数据库结构设计34.5系统的用例图34.5.1 总体用例分析34.5.2 用户管理用例分析34.5.3宠物,宠物类别及宠物监管人管理34.5.4留言板管理34.5.5文档管理34.6 系统出错处理设计34.7 本章小结35 宠物管理系统的实现35.1开发环境35.2 宠物管理系统数据库的实现35.3 宠物管理系统功能说明35.4主要的宠物信息管理的实现35.4.1 DAO层的实现35.4.2 Service层的实现35.4.3 Action层的实现35.4.4 静态Jps页面的实现表现层35.5实现效果图35.6其余模块的功能说明以及效果截图35.6.1 用户登入注册,管理员管理
11、用户模块35.6.2 用户留言,管理员查看留言模块35.6.3 用户查看相关文章,管理员管理相关文章模块35.7本章小结36 软件安装与调试36.1 软件的安装与配置36.2 软件调试36.3 软件测试36.4 小结37 结论3参考文献3致谢3翻译原文及译文3 基于SSH的宠物管理系统设计与实现1 绪论1.1 课题开发背景在科学技术飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用,人们的生活方式也因网络技术的不断发展而改善。由于物质生活的提高,人们开始越来越注重精神层面的享受,不少家庭都拥有自己独特的一员:宠物。宠物在人们的生
12、活起到了很重要的作用,对一部分人来说,或许宠物是一个不可替代的角色。因为宠物有时是人类情感抒发的一个对象,是人们心灵的一个寄托,所以人们对宠物的需求也逐渐增大了。但是由于家养宠物的变多,管理起来也比较麻烦,所以做个上海市的宠物管理系统便于宠物监管人的浏览以及宠物管理人员的管理是十分必要的。近期,社区关于宠物的讨论较多。很多人已经发现,我们身边的流浪宠物越来越多,其中约80%为流浪猫,它们大多是被主人遗弃,流落街头。据报道目前上海市区的流浪宠物已经超过了70万只,对环境、交通和我们的日常生活构成严重隐患,而其他地区流浪宠物的数量也在激增。我国的动物管理正处于起步阶段,注册在线的宠物数量非常有限,
13、信息也很封闭,因此必须发挥民间力量扩大收容,加强宠物信息的宣传力度,使更多爱护动物的好心人可以领养宠物,同时也收纳有家宠物的信息,以防宠物丢失,恶性伤人等事件的发生。由此看来,建立一个规范化、科学化的宠物交流平台是非常有必要的。随着计算机技术的飞速发展,利用计算机在实现宠物管理业务的管理势在必行。当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。目前很多宠物管理的管理还处于人工管理的阶段,效率低下,已经远远落后于当今技术的发展。并且人工管理的弊端也愈来愈严重,由于不可避免的人为因素,造成数据的遗漏、误报,而造成一定的损失的事例层
14、出不穷。计算机信息化管理有着储存信息量大,速度快等许多优点,提供给我们的处理信息及时快捷,同时也提高了我们工作人员的自身素质。因此我们利用计算机提供给我们信息,做出了这个宠物管理系统。宠物管理系统是现在宠物管理工作不可缺少的一部分,是适应现在宠物管理业务制度的要求。推动宠物管理走向科学化、规范化的必要条件。传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。如今,随着计算机技术的普及人们开始采用MIS,它是集计算机技术、网络通信技术为一体的信息系统工程,能使学校运行的数据更加准
15、确、及时、全面、详实,同时对各种信息进一步地加工,使领导层对宠物管理的决策依据更充分,更具有合理性科学性,并创造出更多的发展机会;另外也进一步加强学校的科学化、合理化、制度化、规范化管理,为管理水平跨上新台阶,为持续、健康、稳定的发展打下基础。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。在强调管理,强调信息的现代社会中它变得越来越普及。目前国内使用和发展的MIS平台模式大体分两种:客户机/服务器(C/S)模式和Web浏览器/服务器(B/S)模式。本文主要介绍一个简单的基
16、于B/S模式的学校 宠物管理报修系统的实现,系统开发的总体业务是实现学校宠物管理业务信息关系的系统化、规范化和自动化。本论文主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提高学生综合运用所学知识分析解决问题的能力,增强学生对事物的理解与掌握能力,培养学生掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。1.2 课题研究现状随着人们生活水平的提高,各种各样的宠物开始在千家万户出现,越来越多的市民把饲养宠物视为自己家庭生活的一个重要部分。人们饲养宠物的出发点已不再是以前的养狗是为了看家护院,养猫是为了捉拿耗子,更多的人视宠物为平日玩
17、耍、取乐的对象,是自己寂寞消遣的伴侣。但是,随着宠物热的兴起,也给人们的日常生活带来了诸多麻烦和不便。首先是流浪宠物伤人事件屡屡发生。流浪宠物居无定所无人看管,一不小心就会造成狗伤行人的事件,而且此类事件与日俱增。据卫生部通报:2001年全国人间狂犬病发病891例,死亡854例;2002年发病1122例,死亡1003例;2003年发病2037例,死亡1980例;今年上半年发病1038人,死亡842人。狂犬病对人的致死率高达94.7%以上,且发病和死亡呈逐年上升趋势。同时,大大增加人与人之间的矛盾,引起医药费等索赔的纠纷不断。因此,宠物管理势在必行。其次是宠物粪便和死尸等造成严重的环境污染。据了
18、解,流浪宠物的实体和粪便很多时候是有环卫工人处理,无形中加重了环卫工人的负担。我国并无转业的动物尸体处理设施,也没有专门的动物掩埋场所,再次是宠物传染病威胁人类健康,如寄生虫病、狂犬病等。2007年4月卫生部公布全国法定传染病疫情报告中指出,死亡数居前五位的病种为:狂犬病、肺结核、艾滋病、乙肝和流脑,其中狂犬病居首。最后是宠物鸣叫干扰居民休息,影响他人正常生活。可见,流浪宠物管理是一个亟待解决的问题。这使得对开发上海市宠物系统的技术要求更高了。传统的基于JSP,Servlet以及JavaBean技术所开发的系统扩展能力不强,不能够满足人们快速增长的需求,并且显示页面有时要进行逻辑处理,降低了运
19、行效率。此外,对数据库的处理往往较复杂,特别是与数据库的连接浪费了大量的时间。这使得使用SSH这三个开源框架的优点被很好的体现出来了。开源框架的设计思路是将整个系统的实现分为三层:表现层、业务逻辑层、持久层。表现层主要是负责前台的显示,业务逻辑层主要负责处理业务逻辑以及页面的转向,持久层主要负责后台与数据库的连接以及交换数据。这样大大增加了系统的扩展性,能够即使的调整系统功能来满足用户的需求;使得结构更加严谨,每层完成指定的任务,减轻显示页面的工作量,增加了它们的执行效率。此外增加了持久层,也就增加了更多的安全性。1.3 课题研究内容本系统主要是为用户提供一个网上交流宠物信息的平台,也为社区宠
20、物的管理员提供一个方便管理,记录宠物信息数据的平台。用户可以在该平台上浏览查看宠物的信息以及相关资料,还可以在留言板中留下自己的意见及建议。而管理人员能方便的收集,修改社区宠物的各种数据,听取用户的意见,以达到更好的管理社区内宠物的目的。本系统使用SSH框架进行开发,SSH对视图层、控制层、业务逻辑层、持久化层提供了全面的支持,已经广泛应用于各种系统的开发。系统的开发环境是MyEclipes 9.0,数据库使用MySQL Server 5.5,服务器使用Tomcat 7.x。1.4 本文组成结构 本文摘要简述了本文重点讲述内容。 第一章交代了选择该课题的开发背景,研究现状以及研究内容。 第二章
21、展示了本课题所使用到的关键技术,SSH框架 (Struts2+ Spring + Hibernate),JSP技术,以及MySQL数据库跟B/S结构等。 第三章对该系统做出了需求分析。说明了制作该系统的任务概要,使用该系统的用户的用户特点并将系统的功能需求,界面需求,操作需求以及其他需求一一介绍。 第四章对宠物管理系统做出了详细的设计,从功能设计,到数据库设计,然后给出了系统的功能结构图,er图,以及系统用例图,最后提及了用户输入出错的设计。 第五章详细叙述了系统的实现,主要开发系统的搭建,举例给出了宠物管理模块的实现过程,给出了其数据库的设计以及其业务控制的主要代码和其连接其Struts,H
22、ibernate,Spring的配置代码,并且给出了主要功能实现的截图。 第六章浅谈了软件的安装,测试与调试。 第七章自我评价,总结了安全性以及有待改进的地方。 其后是参考文献,以及感谢。2 关键技术介绍本章全面介绍本系统所用到的关键技术, SSH(Struts+Spring+Hibernate)作为本系统的核心与亮点技术,更是作了详细介绍,要掌握他们的工作原理,主要功能。然后介绍了本系统使用的页面Jsp以及数据库MySQL还有B/S模式。只有掌握了这些技术基础,才能使本系统的开发正常进行。2.1 MVC模式MVC是三个单词的缩写,分别为: 模型(Model),视图(View) 和控制Cont
23、roller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映 射为模型层可执行的操,如图2-1所示:图2-1 MVC模式工作原理图MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。分层概念。视图是用户看到并与之交互的界面。模
24、型表示企业数据和业务规则。控制器接受用户的输入并调用模型和视图去完成用户的需求。2.2 SSH框架SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为
25、基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件 (struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的 Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处
26、理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件 以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。Struts、Spring、Hibernate的关系如图2-2所示:图2-2 Struts、Spring、Hibernate关系图2.3 Struts2 简介Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器
27、能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。 Struts 2框架本身大致可以分为3个部分:核心控制器StrutsPrepareAndExecuteFilter、业务控制器Action和用户实现的企业业务逻辑组件。其工作原理如图2-3所示。图2-3 Struts2工作原理图 核心控制器StrutsPrepareAndExecuteFilterFilterDispatcher是早期Struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了。 StrutsPrepareAndExecuteFilter名字已经很
28、能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的 Action去处理。核心控制器执行读取静态数据信息,决定需要转发或者导航的Action配置,创建Action的Context,创建Action代理,内存清理和性能优化等操作。而Interceptor拦截器本身是一个普通的Java对象,它能动态拦截Action调用,在Action执行前后执行拦截器本身提供的各种各样的Web项目需求,也可以阻止Action的执行,同时也可以提取Action中可以复用的部分。
29、主要作用为:在Action调用之前提供系统处理流程逻辑控制,和Action交互时,提供Ation执行时的一些初始信息,在Action结束后,一些事后的处理流程逻辑,修改Action中返回的Result信息,捕获异常。如果自己定义过滤器的话,是要放在Strtus2的过滤器之前的,如果放在Struts2过滤器之后,自己的过滤器对Action的过滤作用就废了不会有效,除非是访问Jsp/Html。用FilterDispatcher是无法做到使用Action的环境,而又在执行Action之前拿filter做一些事的,而StrutsPrepareAndExecuteFilter可以把他拆分成StrutsP
30、repareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器。 业务控制器Action业务控制器Action是由开发者自己编写实现的,Action类可以是一个简单的Java类,与Servlet API完全分离。Action一般都有一个execute()方法,也可以定义其他业务控制方法。Action的execute()返回一个String类型值。Struts 2提供了一个ActionSupport工具类,该类实现了Action接口和validate()方法,一般开发者编写Action可以直接继承ActionSupport类。编写Action类后,开
31、发者还必须在配置文件中配置Action。一个Action的配置应该包含下面几个元素:1、该Action的name,即用户请求所指向的URL。2、Action所对应的class元素,对应Action类的位置。3、指定result逻辑名称和实际资源的定位。Action是业务控制器,在编写Action的时候,尽量避免将业务逻辑放到其中,尽量减少Action与业务逻辑模块或者组件的耦合程度。 业务模型组件业务模型组件可以是实现业务逻辑的模块,可以是EJB、POJO或者JavaBean,在实际开发中,对业务模型组件的区分和定义也是比较模糊的,实际上也超出了Struts 2框架的范围。不同的开发者或者团队
32、,都有自己的方式来实现业务逻辑模块,Struts 2框架的目的就是使用Action来调用业务逻辑模块。 视图组件Struts 2可以使用Jsp以及其他视图技术,如FreeMarker、Velocity等。Action的返回结果只是一个简单的字符串,也就是一个逻辑上的视图名称,要与实际视图资源对应,必须通过配置文件来实现。在struts.xml配置文件中,每一个Aciton定义都有name和class属性,同时还要指定result元素。result元素指定了逻辑视图名称和实际视图的对应关系。每个result都有一个type属性,struts.xml中并没有显式指定type值,即使用了默认的typ
33、e类型,该结果类型支持Jsp所谓视图资源。 Struts2的配置文件类型Struts2共有4类配置文件。struts.properties:定义框架自身的全局变量。struts-default.xml:定义框架自身使用的Action映射及result定义。struts-plugin.xml:struts插件使用的配置文件,比如当使用Struts和Spring结合时就需要在web.xml中引用该配置文件。struts.xml:定义应用自身使用的Action映射及result定义;当然我们一般将应用的各个模块分不到不同的配置文件中。 框架中所使用的组件ActionServlet 控制器,Actio
34、nClass 包含事务逻辑,ActionMapping 帮助控制器将请求映射到操作,ActionForward 用来指示操作转移的对象,ActionError 用来存储和回收错误,Struts标记库 可以减轻开发显示层次的工作。2.4 Spring 简介Spring 是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可
35、测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 Spring基本框架Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图2-4所示:组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:1、核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
36、2、Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。3、Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。4、Spring DAO:JDB
37、C DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。5、Spring ORM:Spring 框架插入了若干个 ORM框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatisSQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。6、Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于
38、 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。7、Spring MVC 框架:MVC框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,本系统主要应用的是 JSP。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE 环境(We
39、b 或EJB)、独立应用程序、测试环境之间重用。图2-4 spring基本框架图 Spring工作原理Spring内部最核心的就是IoC(Inversion of Control): 控制反转,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用Java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟Spring 的配置文件来动态的创建对象,调用对象里的方法的。IoC控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean。Spring还有一
40、个核心就是AOP(Aspect-Oriented Programming): 面向方面编程,可以为某一类对象 进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过配置类达到的。2.5 Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate
41、可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。其体系结构概要如图2-5以及图2-6所示。Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这6个核心接口分别加以介绍。 Session接口 Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线
42、程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。 SessionFactory接口SessionFactory接口负责初始化Hibernate。它充当数据存储源代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFa
43、ctory。 Configuration接口Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 Transaction接口 Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。 Query和Criteria接口Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。图2-5 Hibernate体系结构概要
44、图图2-6 Hibernate体系结构概要图2 Hibernate的工作就是为Object和Ralational之间提供一个映射,其工作流程如下面的图2-7所示。图2-7 Hibernate工作流程图Hibernate可以通过一个XML的mapping文件把一个POJO(Plain old java object)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,我们可以配置好Object和数据库中标的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自
45、动的加载,并且可以对这些Object实习自动的维护。Hibernate还提供查询语句(HQL)供应用程序使用,Hibernate对数据访问实现封装,还可以对查询语句的发送实现管理,达到优化的目的,能够有效减少数据库的访问频率。2.6 Jsp技术简介Jsp(Java Server Page服务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的Web开发技术。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和Jsp标记(Tag),构成Jsp网页(*.jsp)。Jsp技术为创建显示
46、动态生成内容的Web页面提供了简便的方法。Jsp作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用Jsp作为网络应用程序的开发工具,而在国内,尽管Jsp还不是主流开发技术,但是由于Jsp的强大优势,许多网站都已经准备转向Jsp,利用Jsp来开发动态网站。 2.7 MySQL简介MySQL 应用概述MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(G
47、NU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的优势 使用了多种编译器进行测试,保证源代码的可移植性。 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OS/2 Wrap、Solaris、Windows等多种操作系统。 为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby等。 支持多线程,充分利用CPU资源。 优化的SQL查询算法,有效地提高查询速度。 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 提供用于管理、检查、优化数据库操作的管理工具。 可以处理拥有上千万条记录的大型数据库。2.8 B/S结构B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成三层3-tie