功能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

pacificrack:2021年七夕VPS特别促销,$13.14/年,2G内存/2核/60gSSD/1T流量,支持Windows

pacificrack官方在搞2021年七夕促销,两款便宜vps给的配置都是挺不错的,依旧是接入1Gbps带宽,KVM虚拟、纯SSD raid10阵列,支持包括Linux、Windows 7、10、server2003、2008、2012、2016、2019在内多种操作系统。本次促销的VPS请特别注意限制条件,见本文末尾!官方网站:https://pacificrack.com支持PayPal、支...

ShockHosting日本机房VPS测试点评

这个月11号ShockHosting发了个新上日本东京机房的邮件,并且表示其他机房可以申请转移到日本,刚好赵容手里有个美国的也没数据就发工单申请新开了一个,这里做个简单的测试,方便大家参考。ShockHosting成立于2013年,目前提供的VPS主机可以选择11个数据中心,包括美国洛杉矶、芝加哥、达拉斯、杰克逊维尔、新泽西、澳大利亚、新加坡、日本、荷兰和英国等。官方网站:https://shoc...

imidc:$88/月,e3-1230/16G内存/512gSSD/30M直连带宽/13个IPv4日本多IP

imidc对日本独立服务器在搞特别促销,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制流量。注意,本次促销只有一个链接,有2个不同的优惠码,你用不同的优惠码就对应着不同的配置,价格也不一样。88美元的机器,下单后默认不管就给512G SSD,要指定用HDD那就发工单,如果需要多加一个/28(13个)IPv4,每个月32美元...官方网站:https:...

持久化为你推荐
鬼武者3内存修改器鬼武者3怎么修改唐人社美国10次啦我们新婚一天做爱十次正常吗朱祁钰和朱祁镇哪个好明英宗和明代宗哪个皇帝要做得好无纺布和熔喷布口罩哪个好医用 口罩里面是无纺布好还是过滤纸好网校哪个好请问在网校排名中,哪个网校是最好的?想找一家最好的来选择啊?oppo和vivo哪个好Vivo和OPPO哪个好点啊?雅思和托福哪个好考考托福好还是雅思好网通dns服务器地址网通的DNS是多少?360云盘登录360云盘登陆账号360云盘资源360云盘 百度云 微云 和彩云 那个好
美国加州vps 美国翻墙 青果网 512m内存 java虚拟主机 howfile t云 东莞服务器 阿里云免费邮箱 photobucket lamp什么意思 supercache 杭州电信宽带 umax zcloud winds 海外加速 gotoassist web服务器有哪些 symantec 更多