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

【IT狗】在线ping,在线tcping,路由追踪

IT狗为用户提供 在线ping、在线tcping、在线路由追踪、域名被墙检测、域名被污染检测 等实用工具。【工具地址】https://www.itdog.cn/【工具特色】1、目前同类网站中,在线ping 仅支持1次或少量次数的测试,无法客观的展现目标服务器一段时间的网络状况,IT狗Ping工具可持续的进行一段时间的ping测试,并生成更为直观的网络质量柱状图,让用户更容易掌握服务器在各地区、各线...

Megalayer(月599元)限时8月香港和美国大带宽服务器

第一、香港服务器机房这里我们可以看到有提供四个大带宽方案,是全向带宽和国际带宽,前者适合除了中国大陆地区的全网地区用户可以用,后者国际带宽适合欧美地区业务。如果我们是需要大陆地区速度CN2优化的,那就需要选择常规的优化带宽方案,参考这里。CPU内存硬盘带宽流量价格选择E3-12308GB240GB SSD50M全向带宽不限999元/月方案选择E3-12308GB240GB SSD100M国际带宽不...

RAKsmartCloud服务器,可自定义配置月$7.59

RAKsmart商家一直以来在独立服务器、站群服务器和G口和10G口大端口流量服务器上下功夫比较大,但是在VPS主机业务上仅仅是顺带,尤其是我们看到大部分主流商家都做云服务器,而RAKsmart商家终于开始做云服务器,这次试探性的新增美国硅谷机房一个方案。月付7.59美元起,支持自定义配置,KVM虚拟化,美国硅谷机房,VPC网络/经典网络,大陆优化/精品网线路,支持Linux或者Windows操作...

持久化为你推荐
滴滴软银合资亚滴新能源跑滴滴怎么样?月付百万的女人们我们家的女人们110集优酷 我们家的女人们第110集中文字幕 韩剧我们家的...锦天城和君合哪个好合肥和君纵达好吗?ps软件哪个好什么PS软件好oppo和vivo哪个好OPPO手机和vivo手机哪个好?播放器哪个好播放器哪个好用qq空间登录电脑手机怎么登qq空间电脑版?qqkj空间登录怎么限制qq空间登录.qq网盘在哪里QQ网盘在哪??????电信dns服务器地址电信光纤的dns地址怎么设置
西安虚拟主机 荷兰vps 如何注册中文域名 187邮箱 google电话 hostmaster 便宜域名 香港主机 免费ftp空间申请 国外在线代理 nerds qq对话框 稳定免费空间 hktv 电信主机 联通网站 东莞主机托管 国外网页代理 云服务是什么意思 tracker服务器 更多