hibernate持久化技术在网上购书系统中的设计与实现本科毕设论文.docx
- 文档编号:27370860
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:68
- 大小:825.40KB
hibernate持久化技术在网上购书系统中的设计与实现本科毕设论文.docx
《hibernate持久化技术在网上购书系统中的设计与实现本科毕设论文.docx》由会员分享,可在线阅读,更多相关《hibernate持久化技术在网上购书系统中的设计与实现本科毕设论文.docx(68页珍藏版)》请在冰豆网上搜索。
hibernate持久化技术在网上购书系统中的设计与实现本科毕设论文
学号200532580013
密级________________
武汉大学本科毕业论文
Hibernate持久化技术在网上购书系统中的设计与实现
院(系)名称:
国际软件学院
专业名称:
软件工程
学生姓名:
皮攀
指导教师:
二○○九年六月
BACHELOR'SDEGREETHESIS
OFWUHANUNIVERSITY
ThedesignandimplementofHibernatepersistenceintheOnlineBookstore
College:
WuhanUniversity
Subject:
InternationalSoftwareEngineering
Name:
PiPan
Directedby:
Professor
June2009
郑重声明
本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。
尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。
对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。
本学位论文的知识产权归属于培养单位。
本人签名:
日期:
摘要
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
本论文主要研究Hibernate的ORM(ObjectRelationshipMapping)框架、持久化功能以及Hibernate中的六个核心接口Session、SessionFactory、Transaction、Query、Criteria和Configuration,并对其进行相关实践。
熟悉Hibernate中的框架结构、工作原理。
结合Hibernate在网上购书网站上的实践,体会和研究Hibernate的ORM框架和持久化。
同时,本论文也将说明利用Hibernate的ORM框架和持久化功能来实现网上购书网站的业务层的基本功能。
利用Hibernate的相关技术来对其功能进行优化,达到高性能。
关键词:
ORM;持久化;Hibernate的核心接口
ABSTRACT
Hibernateisaopensourceobject-relationmappingframework,whoencapsulatesJDBCinalight-weight-objectway,andthismakesJavaprogrammersoperatedatabaseintheObject-Orientedwayarbitrarily.TheHibernatecoulduserintheplacewheretheJDBCcoulduse,bothusingintheclient,andinthetheapplicationofServlet/JSP,themostrevolutionarymeanisthat,theHibernatecouldbeusedintheJ2EEwithEJBinsteadofCMP,toaccomplishthepersistence.
TheaimofthisthepaperistostudytheORMframeworkoftheHibernate,persistenceandthesixcoreinterfacesintheHibernate:
Session,SessionFactory,Transaction,Query,CriteriaandConfiguration,andimplementthemintheproject.UnderstandingtheframeworkoftheHibernate,theprincipleandtheAPIoftheHibernate.WiththeimplementoftheHibernateintheOnlineBookstore,experienceandstudytheframeworkandpersistenceoftheHibernate.Achievement:
WiththeHibernatetoimplementingthebasefunctionsofthebusinessleveloftheOnlineBookstore.UsetheothertechnologiesoftheHibernatetooptimizethefunctions,reachinghigherefficiency.
Keywords:
ORM;Persistence;HibernateCoreInterface(Session,SessionFactory,Transaction,Query,CriteriaandConfiguration)
第1章绪论
1.1本章内容介绍
在本章,将会涉及到以下这些内容:
●研究背景,它将商业发展中的网站以及企业开发中的情况。
●研究现状及发展趋势,它将把万维网和Hibernate作为研究对象。
●项目研究的目的和意义,它将介绍本论文的研究的目的、意义和主要内容。
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系列在编写本书时的荐广泛使用的版本,但目前使用较多且较稳定的版本是Hibernate3.1.3或Hibernate3.1.2。
另外,自Hibernate3发布以来,其产品线愈加成熟,相继出现了Hibernate注释、Hibernate实体管理器、Hibernate插件工具等一系列产品套件。
在方便程序员使用Hibernate进行应用程序的开发的同时,也逐渐增强了Hibernate产品线的实力。
Hibernate3在产品的应用性上有了极大提高,并且基于Java1.5进行了改进,且与EJB3.0进行了集成,在功能上有了很大的提升。
同时,Hibernate除了Java主流开发平台上(例如MyEclipse)有广泛的应用外,还对当今另一主流开发平台——微软的.NET平台进行了支持,因此具有更加强大的生命力。
相对于Hibernate2,Hibernate3版本的变化包括三个方面:
●API的变化:
API的变化中比较重大的变化是包名的变化,主要是包的根路径发生了改变。
●元数据:
元数据主要是指Hibernate映射文件中各种元素和属性的用法的变化。
●HQL查询语句:
Hibernate3采用新的基于ANTLR的HQL/SQL查询翻译器,不过,Hibernate2的查询翻译器也依然存在。
(HQL是Hibernate独特的SQL语言,通过它,能够跨越不同数据库SQL的差异性。
)
1.3.2发展趋势
随着购书网站等交易平台的发展,这些网站已经不仅用来交易,同时它们形成了一个小的模拟社区,人们可以在网站里进行交流,彼此讨论,并且相互交互物品。
而对于以后的发展情况,它们将会加入更多元素,例如博客、游戏等等,使其成为一个更加真正的社区。
而Hibernate它作为一种技术,它是一个非常优秀的持久层解决方案。
具有以下发展趋势:
●与其他开发框架的集成将越来越成熟:
如与struts、spring、jbpm的集成,充分发挥Hibernate自身的优势,也吸取了对方框架的优势,在软件系统的各个层各司其职。
●产品线的逐渐完善:
通过增加若干的工具套件,并支持。
net平台,使Hibernate具有更强大的生命力。
●与EJB更好的集成:
集成EJB,开始将重点转向重量级应用,使得Hibernate在企业级应用中必将占据一席之地。
Hibernate的轻量级ORM模型逐步确立了在JavaORM架构中领导地位,甚至取代复杂而又繁琐的EJB模型而成为事实上的JavaORM工业标准。
而且其中的许多设计均被J2EE标准组织吸纳而成为最新EJB3.0规范的标准。
随着Hibernate的广泛应用,越来越多的Java中间件厂商和Java项目(如JBoss、JBPM等)开始把目光集中到Hibernate上并将其纳入自身的体系,使Hibernate具有了越来越广阔的发展前景。
1.4项目研究的目的和意义
1.4.1研究目的
由于技术发展的背景,Hibernate应运而生,它是轻量ORM(ObjectRelationshipMapping对象关系映射)框架,能够实现对对象和关系数据之间的交互,实现了对象持久化的需求,顺应了现代企业开发中的面向对象的开发需求。
同时相对于JDBC,Hibernate有诸多优点,它不断能够提供持久化支持,同时它在业务代码量上也减少许多,同时它还能够和现代开发中非常流行的框架Struts,Spring进行结合,为现代企业级开发带来诸多好处。
本论文的研究目的就是将是在网上购书网站上开发中使用Hibernate技术,利用它实现网上购书网站的持久化功能。
1.4.2研究意义
Hibernate是一个开放源代码的对象关系映射框架,有专门的开发人员对于它的维护和研究,同时在全世界范围内,也有数以万计的开发人在对Hibernate进行研究。
研究Hibernate不但顺应了技术的发展,同时也能够参与Hibernate的研究的讨论,对推动技术的发展能够做出自己的贡献。
1.5论文的主要内容
本论文研究的主要内容分为技术方面和实践方面。
在技术方面的研究内容有:
ØHibernate的ORM(ObjectRelationshipMapping)框架。
Ø持久化功能
ØHibernate中的五个核心接口Session、SessionFactory、Transaction、Query、Criteria和Configuration
在实践方面,利用SH(Struts+Hibernate)框架建造一个网上购书网站,实践Hibernate持久化应用。
1.6本章小结
本章主要是介绍了Hibernate的研究背景、意义、目的,以及Hibernate的发展趋势,从宏观方面介绍了Hibernate,同时也说明了本论文的主要内容。
接下来,在下一章,将详细的介绍下Hibernate,介绍它是什么,它的内容是什么,以及它所具有的优势和劣势。
第2章
网上购书系统方案设计
2
2.1本章内容介绍
在本章将会涉及以下内容:
●介绍网上购书系统的定位和开发软件,同时也会利用图文形式对本系统的框架结构进行介绍。
●系统总体方案设计,从网上购书网站中的各个模块入手,介绍如何利用Hibernate来实现持久化。
2.2系统简单介绍
2.2.1系统的定位以及系统开发软件
网上购书网站是一个B/C(BusinesstoClient)网站,售书公司可以通过购书网站作为平台来展示自己的产品,同时和客户进行网上交易。
在本系统的中使用这些软件:
开发平台MyEclipse7.0、数据库MySQL5.0、项目管理SVN
2.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)用户模块,主要是涉及到用户方面的功能,它有以下内容:
●用户注册与登陆:
用户注册登陆。
●用户评论发布:
用户发布图书评价信息。
●用户信息:
用户修改个人信息。
●购书车:
用户选择选购图书,存入购书车等待结账,下次进入购书车时,购物车里上次购物的信息不会丢失。
2)管理员模块:
●图书类别管理:
新增图书类别,修改类别。
●图书信息管理:
对图书信息进行修改,增加。
●用户管理:
设置用户状态。
●管理员的登录功能。
●超级管理员功能:
增加管理员,修改管理员信息。
3)系统模块:
●RSS系统,用于定制特定内容。
用户模块和管理员模块,是负责对于系统的参与者的功能支持,系统模块是负责对于系统中的一些特定的功能的完成,是对于系统的支持。
2.3.1用户模块设计
用户模块是用来负责对于用户的功能的支持。
用户模块中有四个功能,下面是这些的详细设计:
2.3.1.1用户注册
功能:
用于用户注册。
模块的简单流程:
用户首先填写相关注册信息,当这些注册信息通过验证以后,就会被插入到数据库中。
Hibernate实现过程设计:
1)底层模块会将用户的注册信息封装到一个Entity对象中。
2)然后底层会调用HibernateAPI中的save()来将Entity对象插入数据库的表中。
3)插入成功,底层会返回boolean=true;插入失败,底层会返回boolean=false。
2.3.1.2用户登陆
功能:
用于实现用户登陆。
模块的简单流程:
用户输入用户名和密码,然后提交,用户登陆模块就会进行验证。
Hibernate实现过程设计:
1)用户提交以后,底层首先通过HibernateAPI中的Criteria的查询功能,利用用户名来获取用户的Entity对象,Entity对象中封装好了用户的所有信息。
如果用户不存在,返回的Entity为Null。
2)从Entity中提取出用户密码、用户状态以及其他信息。
3)用户登陆模块使用2中的信息和用户输入的信息进行验证。
2.3.1.3用户评论发布
功能:
用户对于某一本书发表评论。
模块的简单流程:
用户在登陆以后,对于某一本书发表自己的评论,模块将用户发表的评论插入到数据库的表中。
Hibernate实现过程设计:
1)用户在发布评论后,用户评论模块首先将用户的用户ID、书籍ID、评论内容以及发表评论的时间都封装到一个Entity对象中。
2)然后调用HibernateAPI中的save()来将这些信息保存到数据库的表中。
3)保存成功,用户评论模块会返回一个boolean=true,否则会返回boolean=false。
2.3.1.4用户信息管理
功能:
实现用户对于自己的信息的管理。
模块的简单流程:
用户可以修改用户名以外的其他个人注册信息,模块将会更新用户在数据库中的信息。
Hibernate实现过程设计:
1)当用户进入修改页面的时候,模块会调用HibernateAPI中的Criteria根据用户名来查询出用户Entity,并将用户的当前信息显示在一个页面上。
2)用户可以修改用户能够修改的信息。
3)修改以后,更新模块会重新生成一个新的Entity将所有的信息封装进去,然后,模块调用Hibernate的update()更新用户的信息。
4)修改成功,模块会返回一个boolean=true,否则会返回boolean=false。
2.3.1.5购物车
功能:
用于记录用户的购书记录,同时用于结算。
模块的简单流程:
每当用户打开自己的购物车的时候,模块会将数据库中用户最近的购物记录显示出来。
同时用户也可以通过它购买书籍。
Hibernate实现过程设计:
1)用户打开自己的购物车的时候,模块会调用HibernateAPI中的Criteria,根据用户名来调用获取Entity对象,在Entity中除了封装了用户的个人信息外,还有订单信息。
如果用户是新用户,那么订单信息为Null。
2)模块调用最近的订单信息,将其显示给用户。
3)同时用户可以通过购买书籍,在这里生成订单,并将订单存入数据库中。
2.3.2管理员模块设计
2.3.2.1增加图书
功能:
用于增加新图书信息。
模块的简单流程:
当有新书时,管理员在管理员的增加图书界面将新图书的信息添加到表格中,模块将书籍的消息添加到数据库中。
Hibernate的实现过程设计:
1)管理员首先将新图书的信息按照页面要求添加到页面。
然后提交。
2)模块首先会将添加的信息进行验证。
验证通过的信息将会被封装到Entity中,然后模块调用HibernateAPI的save()方法。
将所有信息添加到数据库的表中。
3)添加成功,模块返回一个boolean=true,否则返回boolean=false。
2.3.2.2更新图书
功能:
用于更新图书信息。
模块的简单流程:
当有的书籍需要修改信息时,管理员首先根据书籍ID寻找出要更新的图书,然后修改图书的信息,提交以后,系统调用更新图书模块来更新图书信息。
Hibernate的实现过程设计:
1)管理员首先根据书籍ID来查询到书籍。
2)模块会根据书籍ID调用Hibernate的Criteria将所有的书籍信息Entity中,并将Entity中各项信息显示在网页上,管理员可以在网页上修改除了ID以外的信息。
3)管理员提交以后,书籍更新的信息被封装到一个新的Entity中,模块调用HibernateAPI的update()来更新书籍信息。
4)更新成功,模块返回boolean=true,否则返回boolean=false。
2.3.2.3修改用户状态
功能:
管理员修改用户的状态。
模块的简单流程:
当管理员需要修改某一个用户的状态的时候,管理员利用此功能,首先搜索出该用户,得到该用户的当前状态,然后修改该用户的状态。
Hibernate的实现过程设计:
1)管理员首先进入搜索页面,输入用户的用户名,搜索出用户的状态信息。
2)然后管理员选择用户的新状态。
提交。
3)提交以后,模块掉用HibernateAPI的Update方法来修改用户的状态。
4)修改成功,返回boolean=true,否则boolean=false。
2.3.2.4新增图书类别
功能:
向数据库的类别表中增加新的图书类别。
模块的简单流程:
当图书类别表中的数据缺失的时候,通过此模块,管理员向表中添加相关新图书类别信息。
Hibernate的实现过程设计:
1)管理员首先填写好新图书类别信息。
然后提交。
2)提交后,模块会将图书类别信息封装到一个Entity中,然后模块调用HibernateAPI中的save()方法,将图书类别信息出入数据库。
3)插入成功,模块返回boolean=true,否则boolean=false。
2.3.2.5修改图书类别
功能:
修改图书类别表中已经存在的图书类别信息。
模块的简单流程:
当图书类别表中的数据有问题时,管理员使用该模块。
模块首先搜索出要修改的图书类别,搜索出来的信息都显示在网页上,管理员可以在上面进行修改,然后提交,模块会使用新的图书类别信息更新图书类别表中的过时信息。
Hibernate的实现过程设计:
1)管理员通过图书类别名称搜索图书类别,模块会调用HibernateAPI中的Criteria来寻找出管理员寻找的图书类别,然后将这个图书类别的所有信息封装到一个Entity中。
2)模块将这个图书类别Entity的信息,显示在网页上,管理员可以进行修改。
3)修改以后,提交。
模块会将新的图书类别信息封装到一个新的Entity中,将调用HibernateAPI中的update()来对数据库中的图书类别进行更新。
4)修改成功,模块返回boolean=true,否则boolean=false。
2.3.2.6管理员登陆
功能:
管理员进行登陆。
模块的简单流程:
管理员进入管理员登陆界面,然后输入相关登陆信息,模块从数据库中提取出管理员的信息,并将其封装到一个Entity实体中,然后与管理员输入的信息进行比对。
Hi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hibernate 持久 技术 网上 购书 系统 中的 设计 实现 本科 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)