功能Hibernate持久化技术在网上购书系统中的设计与实现毕业论文

持久化  时间:2021-01-30  阅读:()

学号 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的ORMObject 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 ionFactoryTransaction 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.8Hibernate3系列在编写本书时的荐广泛使用的版本但目前使用较多且较稳定的版本是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

星梦云60元夏日促销,四川100G高防4H4G10M,西南高防月付特价

星梦云怎么样?星梦云好不好,资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器 。官方网站:点击访问星梦云官网活动方案:1、成都电信年中活动机(封锁UDP,不可解封):机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50...

ATCLOUD-KVM架构的VPS产品$4.5,杜绝DDoS攻击

ATCLOUD.NET怎么样?ATCLOUD.NET主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解析、域名注册、SSL证书等海外网站建设服务。 其大部分数据中心是由OVH机房提供,其节点包括美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国以及新加坡。 提供超过480Gbps的DDoS高防保护,杜绝DDoS攻击骚扰,比较适合海外建站等业务。官方网站:点击访问ATCLOUD官网活...

hypervmart:英国/荷兰vps,2核/3GB内存/25GB NVMe空间/不限流量/1Gbps端口/Hyper-V,$10.97/季

hypervmart怎么样?hypervmart是一家国外主机商,成立于2011年,提供虚拟主机、VPS等,vps基于Hyper-V 2012 R2,宣称不超售,支持linux和windows,有荷兰和英国2个数据中心,特色是1Gbps带宽、不限流量。现在配置提高,价格不变,性价比提高了很多。(数据中心不太清楚,按以前的记录,应该是欧洲),支持Paypal付款。点击进入:hypervmart官方网...

持久化为你推荐
闪迪和金士顿哪个好闪迪和金士顿哪个好游戏加速器哪个好网游加速器哪个最好用?手机管家哪个好手机管理软件哪个好用海克斯皮肤哪个好lol100块抽11次的海克斯宝箱值得买吗行车记录仪哪个好请问行车记录仪那个牌子好?美国国际东西方大学凭高考成绩可以申请哪些海外大学?考生个人空间登录我是2007年入的学2010年毕业我想查询这3年的成绩,怎么办啊?求解答!辽宁联通营业厅请问辽宁鞍山最大的联通营业厅在哪google广告申请申请Google广告要多长时间呢网通dns服务器地址网通的DNS是多少?
域名是什么 查询域名 免费网站域名注册 东莞服务器租用 n点虚拟主机管理系统 photonvps sockscap 表格样式 免费静态空间 云图标 空间论坛 百度云1t 万网空间购买 如何建立邮箱 免费邮件服务器 主机管理系统 新加坡空间 cdn网站加速 杭州电信宽带优惠 1美元 更多