Hibernate持久化技术在网上购书系统中的设计与实现毕业论文.doc_第1页
Hibernate持久化技术在网上购书系统中的设计与实现毕业论文.doc_第2页
Hibernate持久化技术在网上购书系统中的设计与实现毕业论文.doc_第3页
Hibernate持久化技术在网上购书系统中的设计与实现毕业论文.doc_第4页
Hibernate持久化技术在网上购书系统中的设计与实现毕业论文.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

学号 200532580013 密级_ 武汉大学本科毕业论文 Hibernate持久化技术在网上购书系统中的设计与实现院(系)名 称:国际软件学院专 业 名 称 :软件工程学 生 姓 名 :皮攀指 导 教 师 : 二九年六月BACHELORS DEGREE THESISOF WUHAN UNIVERSITYThe design and implement of Hibernate persistence in the Online Bookstore矚慫润厲钐瘗睞枥庑赖。College :Wuhan UniversitySubject :International Software EngineeringName : PiPanDirected by: ProfessorJune 2009郑 重 声 明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。聞創沟燴鐺險爱氇谴净。本人签名: 日期: 摘 要Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。残骛楼諍锩瀨濟溆塹籟。本论文主要研究Hibernate的ORM(Object Relationship Mapping)框架、持久化功能以及Hibernate中的六个核心接口 Session、SessionFactory、Transaction、Query、Criteria和 Configuration,并对其进行相关实践。熟悉Hibernate中的框架结构、工作原理。结合Hibernate在网上购书网站上的实践,体会和研究Hibernate的ORM框架和持久化。同时,本论文也将说明利用Hibernate的ORM框架和持久化功能来实现网上购书网站的业务层的基本功能。利用Hibernate的相关技术来对其功能进行优化,达到高性能。酽锕极額閉镇桧猪訣锥。关键词:ORM;持久化;Hibernate的核心接口ABSTRACTHibernate is a open source object-relation mapping framework, who encapsulates JDBC in a light-weight-object way, and this makes Java programmers operate database in the Object-Oriented way arbitrarily. The Hibernate could user in the place where the JDBC could use, both using in the client, and in the the application of Servlet/JSP, the most revolutionary mean is that, the Hibernate could be used in the J2EE with EJB instead of CMP, to accomplish the persistence. 彈贸摄尔霁毙攬砖卤庑。The aim of this the paper is to study the ORM framework of the Hibernate, persistence and the six core interfaces in the Hibernate: Session, SessionFactory, Transaction, Query,Criteria and Configuration, and implement them in the project. Understanding the framework of the Hibernate, the principle and the API of the Hibernate. With the implement of the Hibernate in the Online Bookstore, experience and study the framework and persistence of the Hibernate. Achievement: With the Hibernate to implementing the base functions of the business level of the Online Bookstore. Use the other technologies of the Hibernate to optimize the functions, reaching higher efficiency.謀荞抟箧飆鐸怼类蒋薔。Keywords:ORM;Persistence;Hibernate Core Interface(Session,SessionFactory,Transaction,Query ,Criteria and Configuration)厦礴恳蹒骈時盡继價骚。目 录第1章绪论1茕桢广鳓鯡选块网羈泪。1.1本章内容介绍1鹅娅尽損鹌惨歷茏鴛賴。1.2研究背景1籟丛妈羥为贍偾蛏练淨。1.3研究现状及发展趋势2預頌圣鉉儐歲龈讶骅籴。1.3.1研究现状2渗釤呛俨匀谔鱉调硯錦。1.3.2发展趋势3铙誅卧泻噦圣骋贶頂廡。1.4项目研究的目的和意义3擁締凤袜备訊顎轮烂蔷。1.4.1研究目的3贓熱俣阃歲匱阊邺镓騷。1.4.2研究意义4坛摶乡囂忏蒌鍥铃氈淚。1.5论文的主要内容4蜡變黲癟報伥铉锚鈰赘。1.6本章小结4買鲷鴯譖昙膚遙闫撷凄。第2章网上购书系统方案设计5綾镝鯛駕櫬鹕踪韦辚糴。2.1本章内容介绍5驅踬髏彦浃绥譎饴憂锦。2.2系统简单介绍5猫虿驢绘燈鮒诛髅貺庑。2.2.1系统的定位以及系统开发软件5锹籁饗迳琐筆襖鸥娅薔。2.2.2系统的框架5構氽頑黉碩饨荠龈话骛。2.3系统总体方案设计6輒峄陽檉簖疖網儂號泶。2.3.1用户模块设计7尧侧閆繭絳闕绚勵蜆贅。2.3.2管理员模块设计9识饒鎂錕缢灩筧嚌俨淒。2.3.3系统模块设计12凍鈹鋨劳臘锴痫婦胫籴。2.4本章小结12恥諤銪灭萦欢煬鞏鹜錦。第3章Hibernate基本技术介绍13鯊腎鑰诎褳鉀沩懼統庫。3.1本章内容介绍13硕癘鄴颃诌攆檸攜驤蔹。3.2Hibernate是什么13阌擻輳嬪諫迁择楨秘騖。3.3Hibernate的主要内容14氬嚕躑竄贸恳彈瀘颔澩。3.3.1Hibernate的框架14釷鹆資贏車贖孙滅獅赘。3.3.2Hibernate的工作原理14怂阐譜鯪迳導嘯畫長凉。3.3.3Hibernate的核心接口16谚辞調担鈧谄动禪泻類。3.3.4Hibernate API中的主要部分18嘰觐詿缧铴嗫偽純铪锩。3.4Hibernate的优势和劣势18熒绐譏钲鏌觶鷹緇機库。3.5本章小结18鶼渍螻偉阅劍鲰腎邏蘞。第4章数据库设计19纣忧蔣氳頑莶驅藥悯骛。4.1本章内容介绍19颖刍莖蛺饽亿顿裊赔泷。4.2数据库需求分析19濫驂膽閉驟羥闈詔寢賻。4.3数据库详细设计20銚銻縵哜鳗鸿锓謎諏涼。4.4本章小结24挤貼綬电麥结鈺贖哓类。第5章系统实现与验证25赔荊紳谘侖驟辽輩袜錈。5.1本章内容介绍25塤礙籟馐决穩賽釙冊庫。5.2系统实现25裊樣祕廬廂颤谚鍘羋蔺。5.2.1基本类25仓嫗盤紲嘱珑詁鍬齊驁。5.2.2用户模块的实现27绽萬璉轆娛閬蛏鬮绾瀧。5.2.3管理员模块的实现35骁顾燁鶚巯瀆蕪領鲡赙。5.2.4系统模块实现45瑣钋濺暧惲锟缟馭篩凉。5.3系统验证45鎦诗涇艳损楼紲鯗餳類。5.3.1用户模块的验证45栉缏歐锄棗鈕种鵑瑶锬。5.3.2管理员模块的验证47辔烨棟剛殓攬瑤丽阄应。5.3.3系统模块的验证51峴扬斕滾澗辐滠兴渙藺。5.4本章小结51詩叁撻訥烬忧毀厉鋨骜。第6章全文总结52则鯤愜韋瘓賈晖园栋泷。参考文献53胀鏝彈奥秘孫戶孪钇賻。致 谢54鳃躋峽祷紉诵帮废掃減。附录A55稟虛嬪赈维哜妝扩踴粜。第1章 绪论1.1 本章内容介绍在本章,将会涉及到以下这些内容:l 研究背景,它将商业发展中的网站以及企业开发中的情况。l 研究现状及发展趋势,它将把万维网和Hibernate作为研究对象。l 项目研究的目的和意义,它将介绍本论文的研究的目的、意义和主要内容。1.2 研究背景随着全球经济一体化的逐步深入,购书网站已是现代传统书店必不可少的经营策略,像卓越、当当网等等这些购书网站在互联网时代取得了巨大的成功。目前,购书网站在国际互联网上可以实现的商务功能已经多样化,可以说从最基本的对外沟通展示功能、信息发布功能,在线图书展示功能、在线洽谈功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎以往传统书店功能都可以在互联网上进行电子化的高效运作。除了购书网站,还有B/B网站,例如阿里巴巴,这些网站已经不是一个简单的出售或者交易网站,它们的存在和发展,能够促进Web开发的发展,使开发技术更快的发展。陽簍埡鲑罷規呜旧岿錟。在如今的企业级应用开发环境中,面向对象的开发方法已成为主流。众所周知,对象只能存在于内存中,而内存不能永久保存数据。如果要永久保存对象的状态,需要进行对象的持久化(数据持久化顾名思义就是把程序中的数据以某种形式保存到 某存贮介质中,以达到持久化的目的。当程序运行时,一些数据是临时保存在内存中,一旦退出系统,这些数据就丢失了。那么,使用某种手段将数据保存在硬盘上或者数据库中,这样即使退出系统后又重新启动系统,那么这些数据仍然可以重新找回来。),即把对象存储到专门的数据存储库中。目前,关系数据库仍然是使用最广泛的数据存储库。关系数据库中存放的是关系数据,它是非面向对象的。所以对于对象数据与关系数据交互技术成为未来开发的一种潮流。而Hibernate就是这种发展趋势的成果,它的产生解决了对象的持久化问题。同时它能够配合Struts和Spring框架,形成SSH的主流开发框架。如今它已经在现代企业开发中占有非常重要的地位。沩氣嘮戇苌鑿鑿槠谔應。1.3 研究现状及发展趋势1.3.1 研究现状在万维网的最初阶段,网页都是用静态的HTML语言进行编写,所以要使页面内容改变,必须手动修改脚本语言,而且那个时候网页都是静态的,所以页面单一。而发展到现在,万维网采用了更多更先进的技术,例如CSS、JavaScript、Ajax等等,使网页更加漂亮,更加容易维护,并且具有动态的效果。而网页的内容已经不是简单的靠手动来将内容嵌入到脚本语言中,这些内容都是从数据库中提取,利用相关技术在网页中进行显示。就现在的交易网站而言,大部分是两种类型:一种是ASP.NET网站,一种是JSP网站。ASP.NET是是微软公司的一套网站开发系统,而JSP是用JAVA语言开发的网站,这两种网站解决方案是现在网站开发的主流。钡嵐縣緱虜荣产涛團蔺。相对于万维网发展而言,Hibernate虽然产生时间比较短,但Hibernate版本更新速度非常快,到目前为止有两个阶段性的版本:Hibernate2和Hibernate3。懨俠劑鈍触乐鹇烬觶騮。Hibernate2系列的最高版本是 Hibernate2.1.8,Hibernate3系列在编写本书时的荐广泛使用的版本,但目前使用较多且较稳定的版本是Hibernate 3.1.3或Hibernate 3.1.2。謾饱兗争詣繚鮐癞别瀘。另外,自Hibernate3发布以来,其产品线愈加成熟,相继出现了 Hibernate注释、Hibernate实体管理器、Hibernate插件工具等一系列产品套件。在方便程序员使用Hibernate进行应用程序 的开发的同时,也逐渐增强了Hibernate产品线的实力。呙铉們欤谦鸪饺竞荡赚。Hibernate3在产品的应用性上有了极大提高,并且基于Java1.5进行了改进,且与EJB3.0进行了集成,在功能上有了很大的提升。同时,Hibernate除了Java主流开发平台上(例如MyEclipse)有广泛的应用外,还对当今另一主流开发平台微软的.NET平台进行了支持,因此具有更加强大的生命力。莹谐龌蕲賞组靄绉嚴减。相对于Hibernate2,Hibernate3版本的变化包括三个方面:l API的变化:API 的变化中比较重大的变化是包名的变化,主要是包的根路径发生了改变。l 元数据:元数据主要是指Hibernate映射文件中各种元素和属性的用法的变化。l HQL查询语句:Hibernate3 采用新的基于ANTLR的HQL/SQL查询翻译器,不过,Hibernate2的查询翻译器也依然存在。(HQL是Hibernate独特的SQL语言,通过它,能够跨越不同数据库SQL的差异性。)麸肃鹏镟轿騍镣缚縟糶。1.3.2 发展趋势随着购书网站等交易平台的发展,这些网站已经不仅用来交易,同时它们形成了一个小的模拟社区,人们可以在网站里进行交流,彼此讨论,并且相互交互物品。而对于以后的发展情况,它们将会加入更多元素,例如博客、游戏等等,使其成为一个更加真正的社区。納畴鳗吶鄖禎銣腻鰲锬。而Hibernate它作为一种技术,它是一个非常优秀的持久层解决方案。具有以下发展趋势:l 与其他开发框架的集成将越来越成熟:如与struts、spring、jbpm的集成,充分发挥Hibernate自身的优势,也吸取了对方框架的优势,在软件系统的各个层各司其职。風撵鲔貓铁频钙蓟纠庙。l 产品线的逐渐完善:通过增加若干的工具套件,并支持。net平台,使Hibernate具有更强大的生命力。灭嗳骇諗鋅猎輛觏馊藹。l 与EJB更好的集成:集成EJB,开始将重点转向重量级应用,使得Hibernate在企业级应用中必将占据一席之地。铹鸝饷飾镡閌赀诨癱骝。Hibernate的轻量级 ORM 模型逐步确立了在Java ORM架构中领导地位,甚至取代复杂而又繁琐的EJB模型而成为事实上的Java ORM工业标准。而且其中的许多设计均被J2EE 标准组织吸纳而成为最新EJB3.0规范的标准。攙閿频嵘陣澇諗谴隴泸。随着Hibernate的广泛应用,越来越多的Java中间件厂商和Java项目(如JBoss、JBPM等)开始把目光集中到Hibernate上并将其纳入自身的体系,使Hibernate具有了越来越广阔的发展前景。趕輾雏纨颗锊讨跃满賺。1.4 项目研究的目的和意义1.4.1 研究目的由于技术发展的背景,Hibernate应运而生,它是轻量ORM(Object Relationship Mapping对象关系映射)框架,能够实现对对象和关系数据之间的交互,实现了对象持久化的需求,顺应了现代企业开发中的面向对象的开发需求。夹覡闾辁駁档驀迁锬減。同时相对于JDBC, Hibernate有诸多优点,它不断能够提供持久化支持,同时它在业务代码量上也减少许多,同时它还能够和现代开发中非常流行的框架Struts, Spring进行结合,为现代企业级开发带来诸多好处。视絀镘鸸鲚鐘脑钧欖粝。本论文的研究目的就是将是在网上购书网站上开发中使用Hibernate技术,利用它实现网上购书网站的持久化功能。偽澀锟攢鴛擋緬铹鈞錠。1.4.2 研究意义Hibernate是一个开放源代码的对象关系映射框架,有专门的开发人员对于它的维护和研究,同时在全世界范围内,也有数以万计的开发人在对Hibernate进行研究。緦徑铫膾龋轿级镗挢廟。研究Hibernate不但顺应了技术的发展,同时也能够参与Hibernate的研究的讨论,对推动技术的发展能够做出自己的贡献。騅憑钶銘侥张礫阵轸蔼。1.5 论文的主要内容本论文研究的主要内容分为技术方面和实践方面。在技术方面的研究内容有: Hibernate的ORM(Object Relationship Mapping)框架。 持久化功能 Hibernate中的五个核心接口 Session、SessionFactory、Transaction、Query、Criteria和Configuration疠骐錾农剎貯狱颢幗騮。 在实践方面,利用SH(Struts + Hibernate)框架建造一个网上购书网站,实践Hibernate持久化应用。镞锊过润启婭澗骆讕瀘。1.6 本章小结本章主要是介绍了Hibernate的研究背景、意义、目的,以及Hibernate的发展趋势,从宏观方面介绍了Hibernate,同时也说明了本论文的主要内容。榿贰轲誊壟该槛鲻垲赛。接下来,在下一章,将详细的介绍下Hibernate,介绍它是什么,它的内容是什么,以及它所具有的优势和劣势。邁茑赚陉宾呗擷鹪讼凑。第2章 网上购书系统方案设计22.1 本章内容介绍在本章将会涉及以下内容:l 介绍网上购书系统的定位和开发软件,同时也会利用图文形式对本系统的框架结构进行介绍。l 系统总体方案设计,从网上购书网站中的各个模块入手,介绍如何利用Hibernate来实现持久化。2.2 系统简单介绍2.2.1 系统的定位以及系统开发软件网上购书网站是一个B/C(Business to Client)网站,售书公司可以通过购书网站作为平台来展示自己的产品,同时和客户进行网上交易。嵝硖贪塒廩袞悯倉華糲。在本系统的中使用这些软件:开发平台MyEclipse7.0、数据库MySQL5.0、项目管理SVN2.2.2 系统的框架本系统是采用SH(Struts1.3+Hibernate)框架。Struts负责View层和Control层,Hibernate负责持久层。系统框架如图2.1所示该栎谖碼戆沖巋鳧薩锭。图 2.1 系统的框架图用户通过浏览器发送请求到系统,系统的控制层通过调用业务层,业务层主要由Hibernate实现来实现特定的业务。系统的简单用例如图2.2所示。劇妆诨貰攖苹埘呂仑庙。图2.2 系统用例图2.3 系统总体方案设计网上购书系统它有三个模块:用户模块,管理员模块,系统模块。系统结构图如图2.3。图 2.3 系统结构图1) 用户模块,主要是涉及到用户方面的功能,它有以下内容:l 用户注册与登陆:用户注册登陆。l 用户评论发布:用户发布图书评价信息。l 用户信息:用户修改个人信息。l 购书车:用户选择选购图书,存入购书车等待结账,下次进入购书车时,购物车里上次购物的信息不会丢失。2) 管理员模块:l 图书类别管理:新增图书类别,修改类别。l 图书信息管理:对图书信息进行修改,增加。l 用户管理:设置用户状态。l 管理员的登录功能。l 超级管理员功能:增加管理员,修改管理员信息。3) 系统模块:l RSS系统,用于定制特定内容。用户模块和管理员模块,是负责对于系统的参与者的功能支持,系统模块是负责对于系统中的一些特定的功能的完成,是对于系统的支持。臠龍讹驄桠业變墊罗蘄。2.3.1 用户模块设计用户模块是用来负责对于用户的功能的支持。用户模块中有四个功能,下面是这些的详细设计: 用户注册功能:用于用户注册。模块的简单流程:用户首先填写相关注册信息,当这些注册信息通过验证以后,就会被插入到数据库中。Hibernate实现过程设计:1) 底层模块会将用户的注册信息封装到一个Entity对象中。2) 然后底层会调用Hibernate API中的save()来将Entity对象插入数据库的表中。3) 插入成功,底层会返回boolean=true;插入失败,底层会返回boolean=false。 用户登陆功能:用于实现用户登陆。模块的简单流程:用户输入用户名和密码,然后提交,用户登陆模块就会进行验证。Hibernate实现过程设计:1) 用户提交以后,底层首先通过Hibernate API中的Criteria的查询功能,利用用户名来获取用户的Entity对象,Entity对象中封装好了用户的所有信息。如果用户不存在,返回的Entity为Null。鰻順褛悦漚縫冁屜鸭骞。2) 从Entity中提取出用户密码、用户状态以及其他信息。3) 用户登陆模块使用2中的信息和用户输入的信息进行验证。 用户评论发布功能:用户对于某一本书发表评论。模块的简单流程:用户在登陆以后,对于某一本书发表自己的评论,模块将用户发表的评论插入到数据库的表中。Hibernate实现过程设计:1) 用户在发布评论后,用户评论模块首先将用户的用户ID、书籍ID、评论内容以及发表评论的时间都封装到一个Entity对象中。穑釓虚绺滟鳗絲懷紓泺。2) 然后调用Hibernate API中的save()来将这些信息保存到数据库的表中。3) 保存成功,用户评论模块会返回一个boolean=true,否则会返回boolean=false。 用户信息管理功能:实现用户对于自己的信息的管理。模块的简单流程:用户可以修改用户名以外的其他个人注册信息,模块将会更新用户在数据库中的信息。Hibernate实现过程设计:1) 当用户进入修改页面的时候,模块会调用Hibernate API中的Criteria根据用户名来查询出用户Entity,并将用户的当前信息显示在一个页面上。隶誆荧鉴獫纲鴣攣駘賽。2) 用户可以修改用户能够修改的信息。3) 修改以后,更新模块会重新生成一个新的Entity将所有的信息封装进去,然后,模块调用Hibernate的update()更新用户的信息。浹繢腻叢着駕骠構砀湊。4) 修改成功,模块会返回一个boolean=true,否则会返回boolean=false。 购物车功能:用于记录用户的购书记录,同时用于结算。模块的简单流程:每当用户打开自己的购物车的时候,模块会将数据库中用户最近的购物记录显示出来。同时用户也可以通过它购买书籍。鈀燭罚櫝箋礱颼畢韫粝。Hibernate实现过程设计:1) 用户打开自己的购物车的时候,模块会调用Hibernate API中的Criteria,根据用户名来调用获取Entity对象,在Entity中除了封装了用户的个人信息外,还有订单信息。如果用户是新用户,那么订单信息为Null。惬執缉蘿绅颀阳灣熗鍵。2) 模块调用最近的订单信息,将其显示给用户。3) 同时用户可以通过购买书籍,在这里生成订单,并将订单存入数据库中。2.3.2 管理员模块设计 增加图书功能:用于增加新图书信息。模块的简单流程:当有新书时,管理员在管理员的增加图书界面将新图书的信息添加到表格中,模块将书籍的消息添加到数据库中。Hibernate的实现过程设计:1) 管理员首先将新图书的信息按照页面要求添加到页面。然后提交。2) 模块首先会将添加的信息进行验证。验证通过的信息将会被封装到Entity中,然后模块调用Hibernate API的save()方法。将所有信息添加到数据库的表中。贞廈给鏌綞牵鎮獵鎦龐。3) 添加成功,模块返回一个boolean=true,否则返回boolean=false。 更新图书功能:用于更新图书信息。模块的简单流程:当有的书籍需要修改信息时,管理员首先根据书籍ID寻找出要更新的图书,然后修改图书的信息,提交以后,系统调用更新图书模块来更新图书信息。 嚌鲭级厨胀鑲铟礦毁蕲。Hibernate的实现过程设计:1) 管理员首先根据书籍ID来查询到书籍。2) 模块会根据书籍ID调用Hibernate的Criteria将所有的书籍信息Entity中,并将Entity中各项信息显示在网页上,管理员可以在网页上修改除了ID以外的信息。薊镔竖牍熒浹醬籬铃騫。3) 管理员提交以后,书籍更新的信息被封装到一个新的Entity中,模块调用Hibernate API的update()来更新书籍信息。齡践砚语蜗铸转絹攤濼。4) 更新成功,模块返回boolean=true,否则返回boolean=false。 修改用户状态功能:管理员修改用户的状态。模块的简单流程:当管理员需要修改某一个用户的状态的时候,管理员利用此功能,首先搜索出该用户,得到该用户的当前状态,然后修改该用户的状态。绅薮疮颧訝标販繯轅赛。Hibernate的实现过程设计:1) 管理员首先进入搜索页面,输入用户的用户名,搜索出用户的状态信息。2) 然后管理员选择用户的新状态。提交。3) 提交以后,模块掉用Hibernate API的Update方法来修改用户的状态。4) 修改成功,返回boolean=true,否则boolean=false。 新增图书类别功能:向数据库的类别表中增加新的图书类别。模块的简单流程:当图书类别表中的数据缺失的时候,通过此模块,管理员向表中添加相关新图书类别信息。Hibernate的实现过程设计:1) 管理员首先填写好新图书类别信息。然后提交。2) 提交后,模块会将图书类别信息封装到一个Entity中,然后模块调用Hibernate API中的save()方法,将图书类别信息出入数据库。饪箩狞屬诺釙诬苧径凛。3) 插入成功,模块返回boolean=true,否则boolean=false。 修改图书类别功能:修改图书类别表中已经存在的图书类别信息。模块的简单流程:当图书类别表中的数据有问题时,管理员使用该模块。模块首先搜索出要修改的图书类别,搜索出来的信息都显示在网页上,管理员可以在上面进行修改,然后提交,模块会使用新的图书类别信息更新图书类别表中的过时信息。烴毙潜籬賢擔視蠶贲粵。Hibernate的实现过程设计:1) 管理员通过图书类别名称搜索图书类别,模块会调用Hibernate API中的Criteria来寻找出管理员寻找的图书类别,然后将这个图书类别的所有信息封装到一个Entity中。鋝岂涛軌跃轮莳講嫗键。2) 模块将这个图书类别Entity的信息,显示在网页上,管理员可以进行修改。3) 修改以后,提交。模块会将新的图书类别信息封装到一个新的Entity中,将调用Hibernate API中的update()来对数据库中的图书类别进行更新。撷伪氢鱧轍幂聹諛詼庞。4) 修改成功,模块返回boolean=true,否则boolean=false。 管理员登陆功能:管理员进行登陆。模块的简单流程:管理员进入管理员登陆界面,然后输入相关登陆信息,模块从数据库中提取出管理员的信息,并将其封装到一个Entity实体中,然后与管理员输入的信息进行比对。踪飯梦掺钓貞绫賁发蘄。Hibernate的实现过程设计:1) 管理员输入登录信息。模块根据用户的用户名获取出用户的信息,这些封装到一个Entity实体中。2) 然后将实体中的数据与管理员输入的信息进行比对。 超级管理员增加管理员功能:超级管理员增加系统新的管理员。模块的简单流程:超级管理员进入添加管理员页面,添加管理员相关信息,提交,模块将管理员的信息插入到数据库中。Hibernate的实现过程设计:1) 超级管理员进入添加管理员的页面,添加新增管理员的信息,提交。2) 提交以后,模块将管理员的信息封装到一个Entity中,然后调用Hibernate API中的save()方法将新增管理员的信息插入到数据库中。婭鑠机职銦夾簣軒蚀骞。3) 插入成功,模块返回一个boolean=true,否则boolean=false。 超级管理员修改管理员信息功能:超级管理员通过此模块修改管理员的相关信息。模块的简单流程:超级管理员首先搜索出要修改的管理员,系统返回给超级管理员的是该管理员的信息页面,超级管理员可以再上面修改信息,提交,模块将更新该管理员的信息。譽諶掺铒锭试监鄺儕泻。Hibernate的实现过程设计:1) 超级管理员搜索管理员,模块通过搜索信息调用Hibernate API的Criteria来获取该管理员的Entity,该实体封装了该管理员的所有信息。俦聹执償閏号燴鈿膽賾。2) 系统以页面形式返回给超级管理员,超级管理员通过该网页进行修改该管理员的信息。然后提交。3) 提交以后,模块会将管理员的新信息封装到一个新的Entity中,然后调用Hibernate API中的update(),将管理员的信息进行更新。缜電怅淺靓蠐浅錒鵬凜。4) 更新成功,返回结果为boolean=true,否则boolean=false。2.3.3 系统模块设计 RSS系统功能:用户可以通过RSS系统来定制购书网站里的特定信息。模块的简单流程:RSS系统能够获取特定定制特定信息,将其反馈给用户。Hibernate的实现过程设计:RSS系统调用DAO中的子模块,通过此子模块,RSS能够获得特定信息。2.4 本章小结本章主要简单的介绍了网上购书系统的结构,以及全面的介绍了使用Hibernate设计对于每个功能的实现。本章从宏观和微观的角度介绍了本系统。骥擯帜褸饜兗椏長绛粤。在下一节,将会介绍下Hibernate:Hibernate的ORM模型,Hibernate的工作原理,Hibernate的核心接口,Hibernate的API中的主要部分,以及Hibernate的优势和劣势。癱噴导閽骋艳捣靨骢鍵。第3章 Hibernate基本技术介绍33.1 本章内容介绍在本章将会涉及以下内容:l Hibernate是什么,将会从Hibernate的定义, Hibernate的使用场合,和为什么要使用Hibernate。鑣鸽夺圆鯢齙慫餞離龐。l 的主要内容,将会介绍Hibernate的框架,工作原理,核心接口以及Hibernate API中的主要部分。榄阈团皱鹏緦寿驏頦蕴。l Hibernate的优势劣势,将会用Hibernate和JDBC进行对比,来说明Hibernate的优势和劣势。逊输吴贝义鲽國鳩犹騸。3.2 Hibernate是什么在这一节里,我将从三个方面:Hibernate的定义?Hibernate用在什么场合?为什么要使用Hibernate?幘觇匮骇儺红卤齡镰瀉。Hibernate简单的说,就是和数据库建立会话,然后和数据库进行交互的一种框架。它的定义是Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库1。誦终决懷区馱倆侧澩赜。Hibernate的使用场合是可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。医涤侣綃噲睞齒办銩凛。对于为什么要使用Hibernate?主要有以下几点:l Hibernate支持了企业级开发中数据对象的持久化。l 它是轻量级模型,占用资源小。l 它能够让开发人员从繁琐的SQL语言中解脱出来,减轻开发人员的负担。l Hibernate是J2EE标准中的一部分,它的架构已经被融进现代开发中,并且得到了广泛的应用和实践。所以从市场份额来说,它有着非常大的优势。舻当为遙头韪鳍哕晕糞。l 最后一点就是,Hibernate是开源框架,并且有专门的维护人员进行维护和更新,所以在未来的发展中,Hibernate的价值将会被不断地扩大。鸪凑鸛齏嶇烛罵奖选锯。3.3 Hibernate的主要内容3.3.1 Hibernate的框架如Hibernate的定义一样,Hibernate是一个ORM(对象关系映射)框架。在这个框架中,用三个部分:关系数据库、映射文件(.xml)、实体(类似JavaBean结构的对象),通过映射文件,关系数据库中的数据可以和实体进行交互,实体数据通过映射文件将数据存入数据库,从而实现数据的持久化。通过以上可以看出,Hibernate的操作对象是Entity对象,而不是直接的数据。ORM结构如图3.1所示。筧驪鴨栌怀鏇颐嵘悅废。图3.1 ORM结构图3.3.2 Hibernate的工作原理Hibernate实现ORM映射,必须完成两个配置文件:hibernate.cfg.xml,这个是Hibernate中的主配置文件;同时还有以hbm.xml结尾的配置文件,它里面记录了关系数据库中的哪个表应该和哪个实体进行映射,为了使整个文件能够工作,它还必须在hibernate.cfg.xml中注册。下面我将详细介绍下这两个配置文件中的主要属性。韋鋯鯖荣擬滄閡悬贖蘊。 hibernate.cfg.xml文件它是Hibernate中的核心文件,由于Hibernate是JDBC的轻量级封装。所以Hibernate的在底层实现过程中使用了JDBC中的API。在hibernate.cfg.xml中,正是配置了相关JDBC的配置。内容如下:涛貶騸锬晋铩锩揿宪骟。 钿蘇饌華檻杩鐵样说泻。 戧礱風熗浇鄖适泞嚀贗。 購櫛頁詩燦戶踐澜襯鳳。嗫奐闃頜瑷踯谫瓒兽粪。 虚龉鐮宠確嵝誄祷舻鋸。與顶鍔笋类謾蝾纪黾廢。 是表示连接的数据库名。是表示访问数据库的用户名。是表示访问数据库的密码。是表示JDBC连接数据库的协议方式,不同的数据库使用的协议不一样,例如MySQL的协议方式为:jdbc:mysql:/主机名:端口号(一般为3306)/数据库名。結释鏈跄絞塒繭绽綹蕴。是表示访问数据库所使用的JDBC驱动。JDBC驱动是Java程序访问数据库的接口驱动程序。Java程序通过JDBC驱动提供的接口进行数据库的访问操作。餑诎鉈鲻缥评缯肃鮮驃。是表示Hibernate所使用的方言。Hibernate使用方言可以实现数据库的跨平台操作。爷缆鉅摯騰厕綁荩笺潑。是注册hbm.xml文件。这些是hibernate.cfg.xml中最重要的配置属性。实现了数据库的会话设置,跨平台操作设置以及映射的注册。锞炽邐繒萨蝦窦补飙赝。 hbm.xml配置文件hbm.xml配置文件是Hibernate中用于Entity和关系数据库映射的文件,它的主要属性如下:曠戗輔鑽襉倆瘋诌琿凤。轉厍蹺佥诎脚濒谘閥糞。 中name中是设置映射的实体名称,table表示映射的数据库中的表明,catalog表示映射的数据库名。嬷鯀賊沣謁麩溝赉涞锯。中name表示实体中主键属性的名字,type表示数据类型。中name表示数据库表中所对应的主键属性名。中class表示所采用生成主键的生成器,比如有native为自动生成,assigned为手动生成。讯鎬謾蝈贺綜枢辄锁廪。中name表示实体中属性的名字,type表示数据类型。中name表示数据库表中所对应的属性名,type表示数据类型。和中many-to-one、one-to-many都是Hibernate中最常用的用来表示表之间关系的内容。class是指对应的表的实体的对象名,set是数据结构是用来表示一对多的映射。key之间的属性是表示表之间对应的属性。兒躉讀闶軒鲧擬钇標藪。hbm.xml配置文件必须要hibernate.cfg.xml中注册才能生效。3.3.3 Hibernate的核心接口Hibernate的核心接口一共有六个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。各个接口在框架中有不同的作用,不同的位置,具体如图3.2所示。繅藺詞嗇适篮异铜鑑骠。图3.2 Hibernate核心接口结构图下面对这六个核心接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的 SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的 HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称 为用户session。鮒簡觸癘鈄餒嬋锵户泼。SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。眯毆蠐謝银癩唠阁跷贗。Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。闵屢螢馳鑷隽劍颂崗鳳。Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。檁傷葦开阈灯伞馑諧粮。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。鄭饩腸绊頎鎦鹧鲕嘤錳。3.

温馨提示

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

评论

0/150

提交评论