学号 200532580013
密级________________
武汉大学本科毕业论文
Hibernate持久化技术在网上购书系统中的设计与实现
院系名称 国际软件学院
专业名称 软件工程
学生姓名 皮攀
指导教师
二○○九年六月
BACHELOR'S DEGREE THESIS
OF WUHAN UNIVERSITY
The design and implement of Hibernatepersistence in the Online Bookstore
College Wuhan University
Subject International S oftware Engineering
Name PiPan
Directed by Professor
June 2009
郑重声明
本人呈交的学位论文是在导师的指导下独立进行研究工作所取得的成果所有数据、 图片资料真实可靠。尽我所知除文中已经注明引用的内容外本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。
本人签名 日期
摘 要
H ib ernate是一个开放源代码的对象关系映射框架它对JDBC进行了非常轻量级的对象封装使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。H ib ernate可以应用在任何使用JD B C的场合既可以在Ja va的客户端程序使用也可以在S ervlet/JSP的Web应用中使用最具革命意义的是Hibe rnate可以在应用EJB的J2 EE架构中取代CMP完成数据持久化的重任。
本论文主要研究Hibernate的ORMObject Relationship Mapping框架、持久化功能以及Hibernate中的六个核心接口 Session、 Ses sionFactory、 Transaction、Query、 Criteria和C o nfiguratio n并对其进行相关实践。熟悉H ibernate中的框架结构、工作原理。结合Hibernate在网上购书网站上的实践体会和研究H ibe rnate的O RM框架和持久化。 同时本论文也将说明利用H ib e rnate的O RM框架和持久化功能来实现网上购书网站的业务层的基本功能。利用H ib ernate的相关技术来对其功能进行优化达到高性能。
关键词 ORM持久化 Hibernate的核心接口
AB S TRA C T
Hibernate is a open source object-relation mapping framework,who encapsulatesJDBC in a light-weight-object way,and this makes Java programmers operate databasein the Object-Oriented way arbitrarily.The Hibernate could user in the place where theJDBC could use,both using in the client,and in the the application of Servlet/JSP, themost revolutionary mean is that, the Hibernate could be used in the J2EE with EJBinstead 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 theHibernate.With the implement of the Hibernate in the Online Bookstore, experienceand study the framework and persistence of the Hibernate.Achievement:With theHibernate to implementing the base functions of the business level of the OnlineBookstore.Use the other technologies of the Hibernate to optimize the functions,reaching higher e ffic iency.
Keywords ORM Pers istence Hibernate Core Interface Sess ion Sess ionFactoryTransaction Q uery 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.2 Hibernate是什么. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
3.3 Hibernate的主要内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
3.3.1 Hibernate的框架. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
3.3.2 Hibernate的工作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
3.3.3 Hibernate的核心接口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.3.4 Hibernate API中的主要部分. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.4 Hibernate的优势和劣势. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .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
附录A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
第1章绪论
1.1本章内容介绍
在本章将会涉及到以下这些内容
研究背景它将商业发展中的网站以及企业开发中的情况。
研究现状及发展趋势它将把万维网和H ib e rnate作为研究对象。
项目研究的目的和意义它将介绍本论文的研究的目的、意义和主要内容。
1.2研究背景
随着全球经济一体化的逐步深入购书网站已是现代传统书店必不可少的经营策略像卓越、当当网等等这些购书网站在互联网时代取得了巨大的成功。 目前购书网站在国际互联网上可以实现的商务功能已经多样化可以说从最基本的对外沟通展示功能、信息发布功能在线图书展示功能、在线洽谈功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等几乎以往传统书店功能都可以在互联网上进行电子化的高效运作。除了购书网站还有B/B网站例如阿里巴巴这些网站已经不是一个简单的出售或者交易网站它们的存在和发展能够促进Web开发的发展使开发技术更快的发展。
在如今的企业级应用开发环境中面向对象的开发方法已成为主流。众所周知对象只能存在于内存中而内存不能永久保存数据。如果要永久保存对象的状态需要进行对象的持久化数据持久化顾名思义就是把程序中的数据以某种形式保存到某存贮介质中 以达到持久化的目的。当程序运行时一些数据是临时保存在内存中一旦退出系统这些数据就丢失了。那么使用某种手段将数据保存在硬盘上或者数据库中这样即使退出系统后又重新启动系统那么这些数据仍然可以重新找回来。 即把对象存储到专门的数据存储库中。 目前关系数据库仍然是使用最广泛的数据存储库。关系数据库中存放的是关系数据它是非面向对象的。所以对于对象数据与关系数据交互技术成为未来开发的一种潮流。而Hibernate就是这种发展趋势的成果它的产生解决了对象的持久化问题。同时它能够配合Struts和Spring框架形成SSH的主流开发框架。如今它已经在现代企业开发中占有非常重要的地位。
1
1.3研究现状及发展趋势
1.3.1 研究现状
在万维网的最初阶段网页都是用静态的HTML语言进行编写所以要使页面内容改变必须手动修改脚本语言而且那个时候网页都是静态的所以页面单
一。而发展到现在万维网采用了更多更先进的技术例如CS S、 JavaScript、Ajax等等使网页更加漂亮更加容易维护并且具有动态的效果。而网页的内容已经不是简单的靠手动来将内容嵌入到脚本语言中这些内容都是从数据库中提取利用相关技术在网页中进行显示。就现在的交易网站而言大部分是两种类型一种是ASP.NET网站一种是JSP网站。ASP.NET是是微软公司的一套网站开发系统而JSP是用JAVA语言开发的网站这两种网站解决方案是现在网站开发的主流。
相对于万维网发展而言 H ib e rnate虽然产生时间比较短但H ib e rnate版本更新速度非常快到目前为止有两个阶段性的版本 H ibe rnate2和H ibe rnate3。
Hibernate2系列的最高版本是Hibe rnate2.1.8Hibernate3系列在编写本书时的荐广泛使用的版本但目前使用较多且较稳定的版本是Hibernate 3.1.3或Hibe rnate
3.1.2。
另外 自Hibernate3发布以来其产品线愈加成熟相继出现了Hibe rnate注释、H ibernate实体管理器、 Hibe rnate插件工具等一系列产品套件。在方便程序员使用H ibernate进行应用程序的开发的同时也逐渐增强了Hibe rnate产品线的实力。
Hibernate3在产品的应用性上有了极大提高并且基于Java 1.5进行了改进且与EJB3.0进行了集成在功能上有了很大的提升。 同时 Hibernate除了Java主流开发平台上例如MyEc lip se有广泛的应用外还对当今另一主流开发平台——微软的.N ET平台进行了支持 因此具有更加强大的生命力。
相对于Hibernate2 Hibe rnate3版本的变化包括三个方面
API的变化 API的变化中比较重大的变化是包名的变化主要是包的根
路径发生了改变。
元数据元数据主要是指H ib e rnate映射文件中各种元素和属性的用法的
变化。
2
星梦云怎么样?星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器。星梦云目前夏日云服务器促销,四川100G高防4H4G10M月付仅60元;西南高防月付特价活动,续费同价,买到就是赚到!点击进入:星梦云官方网站地址1、成都电信年中活动机(成都电信优化线路,封锁...
企鹅小屋:垃圾服务商有跑路风险!企鹅不允许你二次工单的,二次提交工单直接关服务器,再严重就封号,意思是你提交工单要小心,别因为提交工单被干了账号!前段时间,就有站长说企鹅小屋要跑路了,站长不太相信,本站平台已经为企鹅小屋推荐了几千元的业绩,CPS返利达182.67CNY。然后,站长通过企鹅小屋后台申请提现,提现申请至今已经有20几天,企鹅小屋也没有转账。然后,搞笑的一幕出现了:平台账号登录不上提示...
RackNerd 商家我们应该是比较熟悉的商家,速度一般,但是人家便宜且可选机房也是比较多的,较多集中在美国机房。包括前面的新年元旦促销的时候有提供年付10美元左右的方案,实际上RackNerd商家的营销策略也是如此,每逢节日都有活动,配置简单变化,价格基本差不多,所以我们网友看到没有必要囤货,有需要就选择。RackNerd 商家这次2022农历新年也是有几款年付套餐。低至RackNerd VPS...