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

月费$389,RackNerd美国大硬盘独立服务器

这次RackNerd商家提供的美国大硬盘独立服务器,数据中心位于洛杉矶multacom,可选Windows、Linux镜像系统,默认内存是64GB,也可升级至128GB内存,而且硬盘采用的是256G SSD系统盘+10个16TSAS数据盘,端口提供的是1Gbps带宽,每月提供200TB,且包含5个IPv4,如果有需要更多IP,也可以升级增加。CPU核心内存硬盘流量带宽价格选择2XE5-2640V2...

raksmart:香港机房服务器实测评数据分享,告诉你raksmart服务器怎么样

raksmart作为一家老牌美国机房总是被很多人问到raksmart香港服务器怎么样、raksmart好不好?其实,这也好理解。香港服务器离大陆最近、理论上是不需要备案的服务器里面速度最快的,被过多关注也就在情理之中了。本着为大家趟雷就是本站的光荣这一理念,拿了一台raksmart的香港独立服务器,简单做个测评,分享下实测的数据,仅供参考!官方网站:https://www.raksmart.com...

EtherNetservers年付仅10美元,美国洛杉矶VPS/1核512M内存10GB硬盘1Gpbs端口月流量500GB/2个IP

EtherNetservers是一家成立于2013年的英国主机商,提供基于OpenVZ和KVM架构的VPS,数据中心包括美国洛杉矶、新泽西和杰克逊维尔,商家支持使用PayPal、支付宝等付款方式,提供 60 天退款保证,这在IDC行业来说很少见,也可见商家对自家产品很有信心。有需要便宜VPS、多IP VPS的朋友可以关注一下。优惠码SUMMER-VPS-15 (终身 15% 的折扣)SUMMER-...

持久化为你推荐
软银亏损65亿美元摩根大通巨亏20亿美元是什么原因造成的?2014年万圣节是几月几日2014年鬼节是几月份?租车平台哪个好租车哪个平台最好?要稳定的集成显卡和独立显卡哪个好集成显卡和独立显卡的区别?哪个更好?免费阅读小说app哪个好有什么好用的看小说的app三国游戏哪个好玩三国系列的游戏哪个好玩?手机炒股软件哪个好手机炒股哪个软件好 要免费的看书软件哪个好手机阅读软件哪个好用?qq空间登录网页版网页版QQ怎么登陆YunOS智能电视显示yunos这个字什么意思?
域名服务器 香港主机租用 动态域名解析软件 域名交易网 紫田 账号泄露 150邮箱 架设服务器 1g空间 vip购优惠 卡巴斯基免费试用 paypal注册教程 中国电信测速器 东莞主机托管 贵阳电信 阿里云手机官网 云销售系统 好看的空间 密钥索引 亿库 更多