ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:649KB ,
资源ID:1272830      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1272830.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用Hibernate和Spring开发数据持久层-毕业论文.doc)为本站会员(滴答)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

使用Hibernate和Spring开发数据持久层-毕业论文.doc

1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: 使用 Hibernate 和 Spring 开发数据持久层 姓 名: 学 院:软件学院 专 业:软件工程 年 级: 学 号: 指导教师 (校外 ): 职称: 指导教师 (校内 ): 职称: 年 月 日 使用 Hibernate 和 Spring 开发数据持久层 1 使用 Hibernate 和 Spring 开发数据持久层 摘 要 在 现 今 世 界 中 ,数 据 已 经 是 信 息 时 代 中 的 重 心 ,本 系 统 基 于 对 象 /关 系 映射 的 核 心 理 论 , 使 用 Hib e r n a t e 持 久 层 技 术 和 S

2、p r in g 框 架 构 建 数 据 持 久 层 , 优 化 数 据库 交 互 , 搭 建 原 型 机 系 统 。 通 过 实 践 证 明 了 Hib e r n a t e 的 优 秀 , 以 及 S pr in g 架 构 的 先进性。 关键词 持久层 O RM Hib e r n a t e S p r in g 使用 Hibernate 和 Spring 开发数据持久层 2 ABSTRACT No wa d a y s , t he Dat a h a s b ee n t he mo s t impo rta n t t h in g in th is c o mmu n ica

3、 t io n e po c h. T he de s ign is b as ed on O bje ct / Re lat ion Ma pp in g th eo ry, u s ing Hib er na t e p er s is te n t t e ch no lo g y a nd Sp r in g f ra me wo r k t o co ns tr u ct a d at a p er s ist en c e la ye r, op t imize th e da ta ba s e in ter a ct ion , c on s tr uc t a ar ch e

4、 ty pe s ys te m. F ro m th is d e s ig n, p ro v in g th e e xc e llen ce o f Hib er na t e a nd t he a d va nc e of Spr in g f r a me wo r k . K eyword Pe r s is t e n ce L a y e r O RM Hib e r n a t e Sp r in g 使用 Hibernate 和 Spring 开发数据持久层 3 目 录 中文摘要 Abstract 第一章 引言 . 1 1.1 课 题背 景 . 1 1.2 设 计意 图

5、 . 1 1.3 设 计概 述 . 2 1.4 论 文组 织 . 3 第二章 基 础概 念 . 4 2.1 ORM . 4 2.1.1 ORM 概念 . 4 2.1.2 ORM 的好 处 . 4 2.2 Hibernate . 5 2.2.1 JDBC 和 Hibernate . 5 2.2.2 新技 术 Hibernate . 7 2.2.3 Hibernate 特性 . 8 2.3 Spring 框架 . 8 2.3.1 Spring 特性 . 8 2.3.2 Spring 中的 IOC . 9 2.4 本 章小 结 . 10 第三章 设 计方 案和 实现 . 11 3.1 设 计方 案概

6、 述 . 11 3.2 IDE 开发工 具 . 11 3.3 构 建持 久层 对象 . 13 3.4 映 射描 述 . 16 3.5 Hibernate 语义 . 20 3.6 整合 . 21 3.6.1 整 合配置 . 21 3.6.2 数 据访问 . 24 3.6.3 原型 机系 统 . 25 3.7 本 章小 结 . 27 第四章 结论 . 28 致 谢 语 . 29 参 考 文 献 . 30 使用 Hibernate 和 Spring 开发数据持久层 1 第一章 引言 1.1 课题背景 在 现今 软件 世界 里, 由于 功能 和数 据量 的增 长, 数据 库扮演 了越 来越 重要的 作

7、用 ,可 以说 基本 上任 何一 个软 件都 不可 能脱 离数 据库单 独存 在。 数据 库技 术的 发展 ,已 经成 为先 进信 息技 术的 重要 组成 部分 ,是现 代计 算机 信息 系统 和 计 算 机 应 用系 统的 基础 和核 心。 数 据库 技术 最初 产生 于 20 世纪 60 年 代中 期,根据 数据 模型 的发 展,可以划 分为 三个 阶段 :第 一代 的网 状、 层次 数据 库系 统; 第二代 的关 系数 据库 系统 ; 第 三 代 的 以面 向对 象模 型为 主要 特征 的数 据库系 统。 鉴 于数 据库 的重 要性,对其 访问 的 高 效和 数据 库的 稳定 成了 当今

8、 非 常重 要的 一个 环节 ,各 个不 同的 系统 采取 数据 库的 访问 方式 很有可 能都 不一 样。 面向 对象 的开 发方 法是 当今 的主 流, 但是 同时 我们 不得 不使用 关系 型数 据库 ,所 以在 企业 级应 用开 发的 环境 中,对象 、关 系的 映射( ORM)是 一种 耗时 的工 作。 大部 分企 业应 用不 得不 与他 们的 后端 数据 库频 繁交互 。为 了让 这 种交互 成为 可能 ,并 且使 得交 互变 得有 效而 迅捷 ,企 业应 用开发 者在 应用 和底 下的 数 据 库 之 间 创建 了一 个“ 持久 层” ( persi stence layer)。

9、 1.2 设计意图 几 乎所 有的 应用 都需 要持 续性 数据 。持 续性 在应 用开 发中是 一个 基本 的概念 ,比 如如 果当 主机 停电 时一 个信 息系 统没 有保 存用 户输入 的数 据, 这样 的系 统几 乎没 有实 际的 用途 。这 个数 据库 负责 存储 从应 用到数 据库 的数 据, 也负 责数 据的 检索 、更 新和 删除 。在 基于 J2EE 的 企业 应用 中,组 成这 个持 久层的 Java 类 既 可 以映 射对 象到 数据 ,也 可以 映射 数据到 对象 。 Hibernate 是一 个开 源对 象 /与 持久 性和 查询 相关 的框 架。 这种 新的 ORM

10、映 射工 具, 它不 仅提 供了 从 Java 类到 数据 表之 间的 映射 ,也提 供了 数据 查使用 Hibernate 和 Spring 开发数据持久层 2 询 和恢 复机 制 。相 对于 使用 JDBC 和 S QL 来 手工 操作 数据 库,使用 Hibernate,可 以大 大减 少操 作数 据库 的工 作量 。 Hi bernate 是 一个 OD MG3 i nterface ,只 要有 Lesser GNU P ublic Li cense (LGPL)就可 以从 hi bernate.org 处免 费下 载。 OD MG3 是由对 象数 据管 理小 组( OD MG)开发的

11、 规范 , OD MG 是一个 由不 同的 投资 商和 兴趣 小组 为开 发用 于对 象数 据库 和对象 相关 的映 射产 品的 可移 植性 规范 而结 成的 联盟 。该 规范 推动 了在 不止 一个产 品上 运行 的可 移植 应 用 程 序 的 开发 。 它 既是 开源 的和 免费 的, 使得 用户 在需 要的 时候 可以 修改源 代码 ,进 行功能 的定 制, 它又 是轻 量级 封装 ,避 免引 入过 多的 复杂 问题, 调试 容易 ,也 减轻 程序 员的 负担 ,另 外它 还具 有良 好的 可扩 展性, AP I 开 放 ,当 本身 功能 不够 的 时 候 , 可 以自 己进 行编 码扩

12、 展所 需的 功能 。 1.3 设计概述 建 立一 个持 久层 是简 单的 ,只 要在 Java 对象 和相 应的 数据库 之间 存在 线性 关系(例 如:一 个对 象域 映射 到相 应的 数据 库表 格的 某一列 )。但是 这 种关系 常常 难于 建立 ,因 为对 象或 者下 层的 数据 库结 构复 杂(例 如, 对象 具有 混合 的类 型、 集合 、和 属性 ;数 据库 表格 有外 部钥匙 约束 、串 联属 性 )。 经常 ,在 开发 持久 层的 时候 ,后 端数 据库 的属 性和 它的 模式 假设永 远保 持不 变。 基于 这种 假设 ,所 有的 持久 性操 作在 应用 中是 硬编 码的

13、 ,因此 只能 绑定 到一 种特 殊的 数据 库模 式中 。当 后端 的数 据库 模式 任何 时候 发生改 变( 这在 现实 生活 中经 常发 生 ),这种 方法 极耗 时间 和精 力。数据 库模 式的 改变导 致了 整个 持久 层必 须重 写, 应用 程序 代码 本身 也有 可能 要进 行大 量的修 改。 这是 一个 单调 乏 味 、 非 常 费时 的任 务。 本 设 计采 用的 是 S pring 的 框 架 配 置加 上 Hibernate 的 解 决方 案, 就是 由Hiber nate 负 责 底 层的 数据 持久层 ,但 是不 使用 Hibernate 自 带 的 配置 文件 ,而

14、 是使 用 S pring 框 架 下 的配 置, 让 S pring 框架和 Hibernate 进 行 一个 整合 ,以 吸 取 二 者 之 长, 在效 率和 简便 性上 面达 到最 佳组合 。 使用 Hibernate 和 Spring 开发数据持久层 3 1.4 论文组织 本 次 设 计 的 论 文大 致分 为 4 个章 节 : 第 一 个 章 节 是 引言 部分 , 总 体介 绍了 课题 背景 ,设计 意图 , 设 计概 述; 第 二个 章节 是阐 述概 念, 本章 节对 O RM, S pring 和 H iber nate 的 概 念 作了一 个较 为详 细的 介绍 ,让未 曾接

15、 触过这 些 方 面的 读者 能有 个比 较清 晰的 认识 ,再 对现 有持 久层 技术 作一 个对 比, 让读 者明 白为什 么会 选 择 Hibernate 而不是 JDO 或 者 别 的 解决 方案 ; 第 三个 章节 设计 方案 和具 体实 现过 程 , 到这 部分 实现 一个从 理论 到实 践的转 换, 在实 践的 角度 上把 整个 设计 过程 进行 一个 较为 条理的 综合 ,让 读者 明白 上 文 所 述 的 各项 技术 如何 运用 到项 目中 去; 第 四个 章节 是最 后的 总结 语,对上 述阐 述进 行一 个最 终的 总结 ,指 出还 存在 的 问 题 以 及 努力 的方

16、向。 使用 Hibernate 和 Spring 开发数据持久层 4 第二章 基础概念 由 于本 次设 计使 用到 的技 术在 实际 应用 领域上 还算 是比 较新 颖,在 本章 就重 点对 设计 中使 用到 的各 种技 术 , 以及 技术 牵涉 到的 概念进 行比 较全 面的 介绍。 2.1 ORM 2.1.1 ORM 概念 上 文提 到 的 ORM 映 射是 本设 计的 核心理 论, ORM 是 Object/Relati on Mappi ng 的 缩写 ,翻 译过 来就 是对 象 /关 系映 射,字母 O 起 源于 “对象 “ (Object),而 R 则来 自于 “关系 “ (Rel

17、ational)。几乎 所有 的程 序里 面,都存在 对象 和关 系数 据库 。在 业务 逻辑 层和 用户 界面 层中 ,我 们是 面向 对象的 。当 对象 信息 发生 变 化 的 时 候 ,我 们需 要把 对象 的信 息保 存在 关系数 据库 中。 当 你 开 发 一 个 应用 程 序 的时 候 (不 使用 O/R Mappi ng),你 可 能会 写 不少 数据 访问 层的 代码,用来 从数 据库 保存,删除 ,读 取对象 信息 ,等 等。你 在 DA L中 写了 很多 的方 法来 读取 对象 数据 ,改 变状 态对 象等 等任务 。而 这些 代码 写起 来总 是重 复的。如果 看看 DA

18、L 代码,你肯 定会 看到 很多 近似 的通 用的 模式 。我 们 以保 存对 象 的方 法为 例 ,你 传入 一个 对 象,为 S qlC ommand 对 象添 加S qlParameter,把 所有属 性和 对象 对应 ,设置 S qlCommand 的 C ommandText属 性为 存储 过程 ,然 后运行 S qlC ommand。对于 每个 对象 都要重 复的 写这 些代 码 。除 此之 外,还有 更好 的 办 法就 是采用 ORM,使 用 ORM 可 以大 大降 低学 习 和 开 发 成 本, 现代 技术 的发 展, 使得 我们 不得不 不停 地学 习。 2.1.2 ORM

19、的 好处 我 们 不仅 要学 习面 向对 象、 UML、设 计模 式等 知识 ,而 且还 需要 学习 S ql 使用 Hibernate 和 Spring 开发数据持久层 5 S erver、 AD O.NE T、 D ataS et、 D ataReader 等知识 。而在 实际 的开 发中,真正 对客 户有 价值 的是 其独 特的 业务 功能 ,而 现在 的现 状是我 们花 费了 大量 的时 间在 编写 数据 访问, C RUD 方法 ,包 括后 期的 B ug 查找 ,维护 等也 会花 费相 当多 的时 间在 数据 处理 上。 这就 是说 ,我 们在 实际 的开发 中很 多的 时间 都被

20、 浪费 在根 本不 创 造 价值 的非 业务 事件 上了 。在使 用 ORM 之后 ,我 们将 不需 要再 浪费 太多 的时 间在 AD O.NE T 和 S ql 语 句上 。 ORM 框架已 经把 数据 库转 变成 了我 们熟 悉的 对象 ,我 们将 只需 要了 解面 向对 象开发 就可 以实 现数 据库 应用 程序 的开 发。 通过 建立 ORM 系 统, 能够 大量 减少 程序开 发代 码, 实现 ORM 后 ,开 发数 据层 就比 较简 单,大大 减少 了出 错机 会。同时 通过 C ache的 实现 ,能 够对 性能 进行 调优 ,实 现了 ORM 区 隔了 实际 数据存 储和 业

21、务 层之 间的 关系 ,能 够对每 一层 进行 单独 跟踪 ,增加 了性 能优 化的 可能。利用 ORM可 以将 业务 层与 数据 存储 隔开 ,开 发人 员不 需要 关系 实 际存 储的 方式 ,如 果我 们需 要把 S QL S erver 数据 库换 成 ORA CLE 数 据库 ,只 需要修 改配 置文 件就 可 , 不 需 要 修改 程序 。 2.2 Hibernate 2.2.1 JDBC 和 Hibernate JDB C 可 以说 是访问 持久 数据 层最 原始 、最 直接 的方 法。 JD BC 是 Java 的开 发者 S un 的 Javasoft 公 司 制定 的 Ja

22、va 数 据 库连 接 (Java D ata Base C onnecti vi ty)技 术 的 简 称 , 是为 各种 常用 数据 库提 供无 缝联 接的 技术。 JDB C 向应 用程 序开 发者提 供了 独立 于数 据库 的统 一 的 AP I。这个 AP I 提供 了编 写的 标准 和考 虑所 有不 同应 用程 序设 计的 标准 。其奥 秘是 一组 由驱 动程 序实 现的 Java 接 口。 驱动 程序 负责 标准 JDB C 调 用向 支持的 数据 库所 要的 具体 调用 转变 。除 了向 开发 者提 供统 一的 独立于 D B MS 的 框架 外, JD BC还 提供 了让 开

23、发 者保 持数 据库 厂家 提供 的特 定功 能的办 法。 JD BC 驱 动程 序必 须支 持 A NS I A QL -2 项 目层 ,但 JD BC 允 许开 发者 直接 将查询 字符 串传 递到 连接 的驱 动程 序。 这些 字段 可能是 A NS I S QL 也可 能不 是,或 者根 本不 是使用 Hibernate 和 Spring 开发数据持久层 6 A QL。这 些字 符串 的使 用是 基础 驱动 程序的 事 。之 前通过 Java 访 问数 据库 的唯 一方 法就 是利 用 Java 中的 流调 和访 问 Common Gateway Interface( C GI,公 用

24、网 关接 口) 程序 。通过 Java 调用 C GI 脚 本 其实 是执 行一个 访问 数据 库并 返回 结果 的独 立程 序。 但是 使用 这种 方法 速度 很慢 ,而且 会在 应用 程序 中引 入更 多的 错误 。这 是由 于利 用两 种不 同的 开发 语言 开发程 序, 需要 掌握 两种不同的技术。 使用 JDB C,用 户只 要了 解 Java 语言 即可 ,而 使用 C GI,用 户必 须同 时使用 Java 和 另 一种 编程语 言。 使 用 JDB C 的另一 个原 因是 它的 速度 比 C GI 方法 更快 。使 用 C GI 方 法 通常要 求计 算机 执行 另一 个独 立

25、的 程序。这个 独立 的程 序访 问数 据库 ,处 理数 据,并 将结 果返 回给 调用 程序。这就 需要 多级 处理 ,因 而增 加了 等待 时间 和出 错概 率。在企 业级 应用 开发 中,我们 可能 使用 D A O( Data Access Object) 模式 来把 数据 访问 封装 起来 ,然 后在其 它的 层中 同一调用。 这 种方 式的 优点 是运 行效 率最 高,但 JD BC +D A O 也 存在 很多的 问题 ,因为 很难 做到 把关 系表 记录 完整 的映 射到 持久 对象 的关 系上来 ,这 主要 体现 在多 表的 关系 无法 直接 映射 到对 持久 对象 的映 射

26、上 来, 可能是 一个 表映 射多 个持 久对 象, 有可 能是 多个 表映 射一 个持 久对 象, 更有 可能的 是表 的某 些字 段映 射到 一个 持久 对象 ,但 是另 外一 些字 段映 射到 别的 持久对 象上 。而 且即 使这 些问 题都 处理 好了 ,也不 能直 接按 照对象 的方 式来 对持 久对 象( PO)编程 ,因 为存 在 1: N 关 系的 持久对 象的 查询 其实 就是 1+n 次对 数据 库的 S QL,这样 将会 造成 访问 的效 率极 其低 下, 最后 可能 导致 不得 不整个 修改 底层 设计 ,最 后等 于是 完全 抛弃 了对 象设 计, 完全 是按 照表

27、字段 进行操 作 , 又回 到了 按照 过 程 进 行 编 程的 老路 上来 。 在 这 种 情况 下就 需要 一个 实用 的 ORM 工具 ,现 在市 面上 有几 种 ORM 工具 可 供 选 择 , 比如 JD O,但 是由 于一 些原 因, 诸如 : 1. 不 是 开源 免费 的工 具,这 点在 企业 开发 当中是 非常 重要 的,大 家都 知道许 多好 产品 都会 商业 化, 成为 商业 产品 ,而 很多 又是 国外的 产品 ,在 国内 根本 就没 有销 售和 技术 的支 持。 这就 决定 了某 些产 品只 能研究 学习 之用 ,而 不能 在实 际用 途中 大显 身手 ,否 则的 话, 你把 软件 卖给 客户的 时候 ,你 还要 告诉 他另 外去 购买 另外 一个 别的 在国 内没 有支 持的 产品 ,如果 那个 软件 出了 什

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。