




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVAJAVA 利用利用 SSHSSH 技术在电子商务库存管理中的应用技术在电子商务库存管理中的应用 摘 要 在电子商品库存管理系统的开发中,充分利用了面向切面编程、控制反转、 面向对象查询语言、对象关系映射等多种最新技术;同时充分利用了 J2EE 平台 的多种优秀开源框架,使用框架的目标就是使 J2EE 体系结构朝着更简单、更理 性的方向发展。 电子商品库存管理系统的实现展示使用这些框架开发项目的高效、便捷之处。 电子商品库存管理系统具有分层的体系结构,表示层采用 Struts 框架,主要负 责数据收集和结果显示,Struts 框架具有良好的可扩展性和可维护性,能够很好 地实现表示与内容之间的分离;业务逻辑层采用 Spring 框架,Spring 框架能有 效地组织中间层对象,消除对象创建与使用紧密耦合等问题,从而提高了电子商 品库存管理系统的可移植性;数据持久层采用 Hibernate 框架,该框架是 J2EE 体系结构中的轻量级持久框架,不但可以减少操作数据库的工作量,而且使得程 序员能够以面向对象思维来操纵数据库。另外使用 Hibernate 框架使得电子商品 库存管理系统在不同数据库管理系统的移植更加简单、快速。电子商品库存管理 展示了使用开源框架开发企业级应用系统的一般模式。 关键词:Struts;Hibernate;Spring;J2EE;WEB 应用 ABSTRACT In the development of electronic goods inventory management system, make full use of much latest technology, such as Aspect-Oriented Programming, Inversion of Control, Hibernate Query Language, Object/Relation Mapping, etc. At the same time make full use of many open source framework of the J2EE platform, the goal of using framework is to make the J2EE aplication architecture become more simple and more rational. The implement of the electronic goods inventory management system shows efficient and convenient to using these frameworks to developed projects. The electronic goods inventory management system has layered structure. The view tier using Struts as its framework, it is responsible for collecting datum and handle the result, Struts framework has a good scalability and maintainability, and can separate presentation from content clearly; the business logic tier using Spring as its framework, Spring framework can effectively organized the middle-wate Object and get rid of the problem of the tight connection of component construction. And improve the scalability of the electronic goods inventory management system; the data persistence tier using Hibernate framework, which provides lightweight persistence framework in J2EE platform, not only can reduce the workload of operating the database, but also allows programmers freely to use the Object-Oriented method to operate database. In addition, by using Hibernate framework makes the electronic goods inventory management system more simple and fast to transplant among different database management systems. The electronic goods inventory management shows a common mode which using open source frameworks to develop enterprise application system. Key words:Struts Framework; Hibernate Framework; Spring Framework; J2EE; WEB Application 目 录 第一章绪论 .1 1.1 课题研究背景和意义.1 1.1.1 研究背景 .1 1.1.2 研究意义 .1 1.2 国内外库存管理系统的研究现状及存在的问题.2 1.2.1 国内外研究现状 .2 1.2.2 存在的问题 .2 1.3 课题研究的目的及主要内容.3 1.3.1 课题研究的目的 .3 1.3.2 课题研究主要内容 .4 1.4 本章小结.4 第二章MVC 模型和 J2EE 框架 .5 2.1 MVC 设计模型 .5 2.1.1 MVC 模型结构.5 2.1.2 MVC 的优势.5 2.2 Struts 框架 .6 2.2.1 Struts1.x 框架的概述.6 2.2.2 Struts1.x 框架的体系结构.7 2.3 Hibernate 框架 .8 2.3.1 ORM 技术的概述.8 2.3.2 Hibernate 框架的概述.9 2.3.3 Hibernate 的体系结构.9 2.4 Spring 框架 .11 2.4.1 Spring 框架的概述.11 2.4.2 Spring 框架的核心机制.12 2.5 SSH 框架集成及其特点 .13 2.5.1 SSH 框架集成.13 2.5.2 SSH 框架集成的特点.14 2.6 本章小结.16 第三章电子商品库存管理系统的分析 .17 3.1 系统可行性研究.17 3.1.1 提出问题 .17 3.1.2 分析问题 .17 3.1.3 系统设计思想 .18 3.2 需求分析.19 3.2.1 用户需求分析 .19 3.2.2 功能需求分析 .19 3.2.3 系统功能分析 .20 3.3 系统开发环境及运行环境.23 3.3.1 开发环境 .23 3.3.2 运行环境 .24 3.4 本章小结.24 第四章总体设计和数据库设计 .25 4.1 总体设计.25 4.1.1 三大框架协作流程设计 .25 4.1.2 持久层设计 .26 4.1.3 业务逻辑层设计 .27 4.1.4 视图层设计 .27 4.2 数据库设计.28 4.2.1 数据库概念模型设计 .29 4.2.2 数据库逻辑模型设计 .29 4.3 本章小结.33 第五章电子商品库存管理系统的实现 .34 5.1 持久层实现.34 5.2 业务逻辑层实现.35 5.3 表现层实现.36 5.3.1 视图层(View) .36 5.3.2 控制层(Control) .38 5.3.3 模型层(Model) .38 5.4 部分页面功能展示.40 5.5 本章小结.42 结 论 .43 参考文献 .45 附 录 .46 天津工业大学 2010 届本科生毕业设计(论文) 1 第一章第一章 绪论 1.1 课题研究背景和意义 1.1.1 研究背景 随着我国社会主义市场经济体制的确立和深入发展,商品经济的飞速发展, 越来越多的商贸企业不断涌现,市场瞬息万变,迫使企业在商务大战中必须及 时地、准确地掌握来自企业内外的各种商务信息。商品流通领域进入了一个空 前的发展阶段,面临商界的各种激烈地竞争,要提高市场竞争力,就必须有好 的产品质量、好的市场客户服务,同时又要有好的商品流通管理体系。 库存管理是商业企业经营管理中的核心环节,也是一个企业能够取得效益的 关键,特别是企业如果能够做到合理进货、及时销售、库存量最小和减少积压, 那么企业就能取得最大的利润。由此可见,进销存管理决策的正确与否直接影响 了企业的效益。 在过去,销售业的操作一般都靠人工操作,如靠人工登记卡片、填写表格资 料,然后根据不同商品的进行分类入库、出库、记账,销售额的日结算和每月的 盘点都需要花费大量的人力和物力。这都是一项极其繁琐的工作。通过人手工计 算不但容易出错,而且不能够及时把数据之间的关系形象化表现出来,也就不能 够进一步掌握市场的最新动态。而且在手工管理的情况下,销售人员很难对客户 做出正确的供货承诺,同时企业的进购部门也缺少一份准确的进购计划,部门之 间的通讯也经常不畅通。这在激烈竞争的市场中是非常不利的。库存管理系统就 是在这种状况下出现的,通过利用计算机的技术,使得企业进货、销售、存库管 理能够有机地结合起来,从而提高企业的效率,节省成本。随着全球经济一体化 进程的不断推进以及我国中小型物流企业的蓬勃发展,在这些中小型企业中推行 库存管理系统已经成为一种可能,也是市场经济发展得必然趋势。 1.1.2 研究意义 基于 SSH 架构的电子商品库存管理系统能够帮助企业的仓库管理人员对仓库 的电子商品的入库、出库、移动和盘点等操作进行全面的控制和管理,达到提高 库存控制精度,降低库存量,杜绝电子商品积压与短缺,提高客户服务水平,保 证生产经营活动顺利进行的目的。但是目前一般中小型企业往往不会购买大型通 用的库存管理系统来提高这种管理机制,因为这种系统不一定符合该企业的库存 管理的要求而且又需要付出昂贵的代价。因此根据目前一般中小型物流企业实际 的库存管理情况开发一套适合于该类企业的库存管理系统是十分必要的。 库存管理管理系统对于物流企业的意义: 天津工业大学 2010 届本科生毕业设计(论文) 2 (1) 库存管理不再费时费力,库存管理系统对商品的出库、入库、转移、盘 点等事务处理进行全面的控制和管理,大大提高库存管理的效率。 (2) 检索查询更加方便、快速,从而提高了物流企业的工作效率。通过查询 并查看库存量,从而做出正确的决策是库存管理系统的一项重要功能。保证库存 最少、资金占用最少、杜绝商品积压与短缺、提高客户服务水平、保证生产经营 活动顺利进行。完善的库存管理功能可以对企业的存货进行全面的控制和管理, 大大降低库存成本。 (3) 库存的查阅调拨工作更加可控。通过库存管理系统企业仓库管理人员可 以查阅各地子公司的库存情况。根据具体情况进行商品的调拨,保证各子公司的 库存量最佳。 1.2 国内外库存管理系统的研究现状及存在的问题 1.2.1 国内外研究现状 计算机在管理中的应用始于 1954 年,当时美国率先使用计算机进行工资单 处理,经过差不多 50 年的发展,计算机在处理管理信息方面得到迅速发展。例 如,60 年代美国,计算机在管理中应用项目不到 300 项,但到了 1975 年就达到 了 2670 项。而现在美国在财务上 90%的工作由计算机完成;物资管理中 80%至 100%的信息处理由计算机完成;计划管理中是 80%至 90%。根据计算机应用方面 发展较快的国家统计,计算机用于管理的约占 80%;用于科技运算的占 8%;用于 生产过程控制的占 12%。由此可见,经济管理是计算机应用的主要领域。 当然由于库存管理在经济管理中占重要地位,其计算机化在发达国家也已经 达到了相当高的水平。我国在全国范围内推广计算机在管理中的应用,始于 70 年代末,虽然起步比较晚,但是经过这些年的发展,特别是最近几年微型计算机 的出现和普及为信息处理提供了物美价廉的手段,对于推动我国计算机在信息处 理方面起到了重要的作用。特别是这两年来国家大力支持民营企业的发展,涌现 了大量的中小型物流企业和 IT 公司,这些 IT 公司可以根据不同的物流企业开发 出适用于不同物流企业的库存管理软件,求得发展。 1.2.2 存在的问题 库存管理对企业来说是一项关键的工作,领导者能否做出明智决策,企业能 否飞速发展,都取决于库存各个环节做的是否到位。在发达国家里,库存管理的 计算机化水平已经很高了,虽然我国的企业在这方面也有了很强的意识而且得到 了长足的进步,但是仍存在这样或者那样的一些问题。 (1) 有的企业单位的库存管理部分目前仍处于手工、半手工操作。每次在提 取信息时,要先不断查询记载,如果数量不多,还可以在较短时间内整理出来, 但如果记载很多,一来翻阅要花费很长的时间,二来对人脑记忆是一种挑战,而 且整理出来的结果不一定正确,长时间的整理还可能延误商机。 天津工业大学 2010 届本科生毕业设计(论文) 3 (2) 有的单位的库存管理已经使用了计算机,但是对计算机的利用效率极低, 有的用它打游戏,有的把它当做计算器或打字机。 (3) 有的企业单位既使用了计算机同时也安装了库存管理软件。但是因为他 们使用的库存管理软件,大多为自己的工作人员及其他一些专业人员所开发的简 单的管理程序,很难称得上是真正的库存管理系统。软件的弱点多表现为:系统 开发时没有科学的理论支持、开发过程中调研不足、软件编写时模型不清晰、功 能不完整等。还有些企业选择了大型进销存软件,但是强大的处理功能是这些中 小型企业根本用不到的。虽然功能强大,但是不一定比人工处理快。 总的来说信息化不足、计算机使用率低、大量的日常工作皆由手工处理,因 此工作率低、物流企业内部各部门沟通不良等问题很难克服。要提升物流企业竞 争力,企业内信息化是不可缺少的一个重要环节。实施先进的办公室自动化系统, 实现企业内部管理、资源共享及交流,才能让企业在竞争激烈的 21 世纪占得先 机,取得最大利润。 1.3 课题研究的目的及主要内容 1.3.1 课题研究的目的 目前,市场上已经有许多基于 B/C 结构的库存管理系统,虽然美观大方、功 能强大,但是它们却忽视了系统的易用性。对于中小型物流企业的库存管理,软 件的简单易用更胜于功能强大而全面,本系统在力求简单易用的基础上,实现复 杂的业务与简捷操作的完美结合,既可以完全独立,也可以实现一体化结合,适 合不同客户需求,突出强大的库存管理能力。使得所有业务流程更加清晰,责任 更加明确。库存管理系统设计的总体目标是通过对采购、销售、库存的管理,及 时地、准确地了解销售、库存等综合情况,以便为企业的决策者作出准确的判断 提供依据。并通过对进销存数据的详细分析,为管理及决策人员提供库存资金占 用、物资短缺、物资积压等情况。通过库存盘点管理,保证帐面与实物一致,为 决策人员提供实时准确的存货信息,以便及时调整商品配置,保证企业各项经营 活动顺利有效地进行,彻底改变传统手工库存管理的各种弊端。所以本课题的目 的是准备开发出具有以下特点的面向中小型电子商品流通企业的库存管理系统: (1) 使用软件所需投资成本比较低,适用于各种中小型电子商品流通企业。 (2) 对于使用者的要求不高。从我国企业现状来看,中小型商品流通企业的 大多数的从业人员对计算机的操纵能力不高,所以他们宁肯多动手也不愿意使用 比较专业的应用系统,帮助他们减少工作量。 (3) 适用于单机操作和网络使用,该系统可以根据企业的实际情况用于单机 操作或者联网的多用户操作。 (4)功能全面且简单易用。 天津工业大学 2010 届本科生毕业设计(论文) 4 1.3.2 课题研究主要内容 本课题主要实现了基于 SSH 框架集成的电子库存管理系统。它可以为使用者 提供丰富而全面的功能,实现操作的简单化、自动化,从而大幅度的降低电子商 品信息管理的工作强度,可为使用者节省大量的时间,提高了电子商品库存管理 工作的效率,减少了大量的手工操作可能引起的操作失误,推动电子商品库存管 理的信息化建设。在课题中以典型的电子商品库存管理系统的开发过程作为实例, 具体的研究内容如下: (1) 通过使用 Java 语言实现了一个基于 B/S 结构的电子商品库存管理系统。 系统地介绍了实现该系统所使用的主要技术,包括 AOP、IoC、HQL 等。 (2) 分模块实现了电子商品库存管理系统的每个子模块和用户登录界面。 (3) 通过学习 E-R 模型和 SQL 的相关知识,在对商品库存管理业务进行了详 尽的分析下,使用 MySQL 6.0 建立一个以 E-R 模型为基础的数据库。 (4) 探讨了电子商品库存管理系统实现中涉及的关键技术问题,包括用户的 访问控制和身份验证。 (5) 通过对以上相关知识的介绍和电子商品库存管理系统这个具体实例的开 发,研究一个真实项目开发的实际过程。 1.4 本章小结 本章主要阐述了课题研究的背景和意义、国内外库存管理系统的研究现状及 存在的问题和课题研究的目的及主要内容,并对本课题开发的电子商品库存管理 系统进行了简单的介绍。 天津工业大学 2010 届本科生毕业设计(论文) 5 第二章第二章 MVC 模型和 J2EE 框架 2.1 MVC 设计模型 2.1.1 MVC 模型结构 MVC 设计模型由 Trygve Reenskaug 提出,首先被应用于 SmallTalk-80 环境 中,是许多交互界面系统的构成基础。对于界面设计可变性的需求,MVC 把交互 系统的组成分成模型(Model) 、视图(View) 、控制器(Controller)三种部件。 模型部件是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在 抽象,封装了问题的核心数据、逻辑和功能的计算关系,他独立于具体的界面表 达和 I/O 操作。 视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。 它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。 控制器部件是处理用户与软件的交互操作的,其职责是控制提供模型中任何 变化的传播,确保用户界面与模型间的对应联系;它接受用户的输入,将输入反 馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用 户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都 应反映到这些变化中。因此无论何时发生了何种数据变化,控制器都会将变化通 知所有的视图,导致显示的更新。实际上是一种变化-传播机制,它的变化-传播 机制可以用图 2-1 来表示。 视视图图 解析模型 模型更新请求 发送用户请求给控制器 允许控制器选择视图 模模型型 封装应用程序状态 响应状态查询 应用程序功能 通知功能改变 控控制制器器 定定义义应应用用程程序序行行为为 用用户户动动作作映映射射成成模模型型更更新新 选选择择响响应应的的视视图图 状态查询改变状态 视图选择 通知改变 用户请求 事件 方法调用 图 2-1 MVC 变化-传播机制图 2.1.2 MVC 的优势 MVC 的优势主要表现在以下几个方面: 天津工业大学 2010 届本科生毕业设计(论文) 6 (1) 可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以 确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做 到行为同步。 (2) 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据 需求动态的打开或关闭、甚至在运行期间进行对象替换。 (3) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立 地移植到新的平台工作,需要做的只是在新平台上对视图和控制器进行新的修改。 (4) 应用被抽象为三层,降低了各层之间的耦合,提供了应用的可扩展性。 (5) 潜在的框架结构。可以基于此模型建立应用程序框架,而不仅仅是用在 界面设计中。 2.2 Struts 框架 2.2.1 Struts1.x 框架的概述 Struts 是目前最流行的开源框架之一,其本质上是基于 JSP Model2 模型实 现的一个 MVC 模型的 Web 应用框架。该框架主要采用了 Servlet 和 JSP 技术来实 现,它把 JSP、Servlet、JavaBean、Taglib(自定义标签)以及信息资源整合在 一个统一的框架中,为 Web 应用开发提供了一种具有高可配置性的 MVC 开发模板。 用户不需要编码实现所有的 MVC 模块,而只需要根据具体业务要求,开发所需的 页面、控制逻辑和业务处理代码即可,Struts 会通过相关配置信息把它们连接在 一起。使用 Struts 框架进行开发,可以简化应用 MVC 模型的开发过程,缩短开 发周期,提高开发效率,并保证系统结构的稳定性和健壮性。Struts 在模型层、 视图层和控制层上都有涉及,但它的着力点是在控制层和视图层上,即主要是提 供一个好的控制器和一套自定义标签。 Struts 框架由大约 15 个包,近 200 个类所组成。它把 MVC 中的 Model、View 和 Controller 分别映射为 J2EE 中的组件,其中 View 层主要采用 JSP 技术实现,并提供了自定义标签库,可以大大简化 JSP 页面的开发与设计; Controller 层主要采用 Servlet 技术来实现,主要由核心控制 ActionServlet 和 进行逻辑处理的 ActionBean 组成。ActionServlet 可以接收客户端提交的请求, 然后根据配置文件中的信息调用相应的逻辑处理 ActionBean 完成用户请求的处 理;模型层主要采用 JavaBean 来实现,其中封装一些具体的业务处理功能,供 逻辑处理 ActionBean 在进行逻辑处理时调用。Struts 处理结构图如 2-2 所示: 天津工业大学 2010 届本科生毕业设计(论文) 7 Controller ActionServlet Struts-config.xml Model JavaBean Business Login Action View JSP Client IE or Firefox Action Form HTTP Request THHP Request 图 2-2 Struts 处理结构图 2.2.2 Struts1.x 框架的体系结构 Struts1.x 框架是一个优秀的 MVC 框架,它的主要组件包括 ActionServlet、Struts TagLib、ActionBean、ActionForm 和 ActionMapping 等, 下面对他们分别进行详细的介绍。 (1)ActionServlet ActionServlet 继承自 HttpServlet 类,其在 Struts Framework 中扮演的角 色是全局控制器。控制器 ActionServlet 主要负责将 HTTP 的客户请求信息组装 后,根据配置文件的指定描述,转发到适当的业务处理器即 ActionBean。在 Struts1.1 中新增了 org.apache.struts.action.Action.Request.Processor 类, 将处理请求的功能从控制器功能中分离。按照 Servlet 的标准,所有的 Servlet 必须在 web 配置文件 web.xml 声明。同样 ActoinServlet 也必须在 Web 配置文件 web.xml 中配置。当用户向服务器端提交请求的时候,实际上信息是首先发送到 全局控制器 ActionServlet,一旦全局控制器获得了请求,其就会将请求信息传 交给一些辅助类处理。这些辅助类知道如何去处理与请求信息所对应的业务操作。 在 Struts 中,这些辅助类就是 org.apache.struts.action.Action 类及其子类。 所以开发者通常需要继承 Aciton 类,并实现自己的 Action 实例,即业务逻辑 ActionBean。 (2)Struts TagLib Struts 提供了一组可扩展的自定义标签库 TagLib,可以简化创建用户界面 的过程。目前 Struts TigLib 主要包括 Bean Tags,HTML Tags、Logic Tags、Nested Tags 和 Template Tags 这几个 TagLib。 (3)ActionBean ActionBean 类扮演的角色,就像用户请求和业务逻辑处理之间的一个适配 器(Adaptor) ,其功能就是将请求与业务逻辑分开。这样的分离使得用户请求和 Action 类之间可以有多个点对点的映射。而且 Action 类通常还提供了其它的辅 助功能,例如日志(logging)和数据验证(validation) 。Action 最为常用的是 execute()方法,开发者只要继承 Action 类就必须重写该方法并返回一个 ActionMapping 实例即可。当全局 Controller 收到用户请求的时候,就会将请求 转移到一个 Action 实例,如果这个实例不存在,控制器会首先创建,然后会调 用这个 Action 实例的 execute()方法。Struts Framework 为应用系统中的每 天津工业大学 2010 届本科生毕业设计(论文) 8 一个 Action 类只创建一个实例,所以 Action 类不是线程安全的。所有的用户都 会共享这一个实例,所以你必须确定你的 Action 类运行在一个多线程的环境中。 (4)ActionForm ActionForm 的主要功能就是为 ActionBean 的操作提供与用户表单相映射的 数据(如果在用户指定的情况下,还包括对数据进行校验) 。ActionForm 负责对 系统数据状态的保持,而 ActionBean 则负责根据业务逻辑的需要对数据状态进 行修改,在改变系统状态后,ActionForm 则自动的回写新的数据状态并保持。 (5)ActionMapping 上面讲到了一个客户请求是如何被控制器转发和处理的,在 Struts 中,这 些配置映射信息是存储在特定的 XML 文件(比如 struts-config.xml) 。 这些配 置信息在系统启动的时候被加载入内存,供 Struts Framework 在运行期间使用。 在内存中,每一个 Action 元素都会与 org.apache.struts.action.ActionMapping 类的一个实例对应,这些 ActionMapping 实例将会根据具体的用户请求和实际的配置返回不同的视图。 总的来说 Struts Framework 体现结构的工作机制如图 2-3 所示: 图 2-3 Struts 体现结构的工作机制图 2.3 Hibernate 框架 2.3.1 ORM 技术的概述 几乎所有的 J2EE 应用程序都需要访问持久化的数据,而关系型数据库是最 常用的数据持久化方案。面向对象的应用程序和面向关系的数据库操作之间存在 着巨大的差异,因此存在着各种方式来访问和操作关系型数据库。一种是直接使 用 SQL 语句,并解析返回的结果集,这种称为“事务脚本” ,这种方式特别适合 集合查询和批量更新。因为关系型数据库能够非常高效的处理这类操作;另一类 应用程序的查询需求比较简单,通常只需取出很少的几行数据(通常是从一个表), 并对这些数据进行选择性的更新,很少需要批量更新。这些数据通常可以映射到 持久化的 Java 对象,后者就组成了领域模型(Domain Model),因此业务逻辑可 天津工业大学 2010 届本科生毕业设计(论文) 9 以表现为这些对象之间的交互,而不是直接操作数据库中的表和字段。这种策略 一般称为 Object/Relational Mapping(对象关系映射) 。 复杂的 ORM 实现能够自动侦测所取出对象的修改,并在事务提交的时候自动 将修改后的状态持久化到数据库。通过这种完全“透明”的持久化,在业务逻辑 中根本不需要显式的调用类似于“更新到数据库”的操作。为了达到这一效果, ORM 框架必须维护一个列表,记录那些被修改过的对象,这样当事务提交时,就 可以只把这些对象写回到数据库。同时还需要维护每个对象的身份,避免对象被 重复加载。Java 平台上最基本的数据访问方式是使用 JDBC,这能够以很高的性 能和最灵活的方式来执行基于数据集的操作,充分利用数据库的专有特性或存储 过程,但是其缺点是 JDBC API 过于复杂,直接使用相当麻烦,必须使用大量容 易出错的 try/catch/finally 代码块来确保资源和异常得到很好的处理。ORM 技 术是在 JDBC 之上又提供了一层抽象,使得程序开发人员可以以面对对象的方式 操作持久化对象,而 ORM 则负责转换成对应的 SQL 操作。大大减少了编写 SQL 语 句出错的概率和缩短了软件的开发周期。 ORM 技术的发展,衍生了许多基于该技术的 ORM 框架。其中 Hibernate 框架 就是一个基于该技术的 ORM 框架。Hibernate 框架的出现使得 J2EE 的开发更为简 单。 2.3.2 Hibernate 框架的概述 从八十年代开始,就有很多公司和研究机构在进行着面向对象与数据库结合 的研究。很多应用还是采用简单的 JDBC 来访问数据库。可是 JDBC 也有很多局限 性,比如调用复杂,容易产生资源泄漏等,与面向对象的 Java 语言有一段距离, 所以很多开发小组开始思考如何将应用中的数据进行对象化建模,然后再想办法 与 JDBC 结合起来,Hibernate 框架就是在这种情况下开发出来的。 Hibernate 框架是一个高性能、开放源码的持久框架,是 ORM 技术的完美解 决方案。它不仅提供了基础的 ORM,而且支持所有其它的复杂功能,如缓存、延 时加载、主动抓取、分布式缓存等。Hibernate 框架是 Java 应用和关系数据库之 间的桥梁,它负责 Java 对象和关系数据库之间的映射,在 Hibernate 内部封装 了通过 JDBC 访问数据库的操作,向上层应用提供了面向对象的数据库访问 API, 它的主要特点有以下几方面:协调应用程序与关系数据库的交互,让开发者更专 注于业务逻辑的解决,它可以与大多数新的或者现在的应用框架平稳集成;它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用面向对象编 程的思维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序中使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命 性意义的是它可以在应用 EJB 的 J2EE 架构中替代 CMP 完成数据持久化的任务。 目前,由于 Hibernate 框架已经成为了事实上标准的 O/R 映射技术。因此在 Spring 框架中已经对 Hibernate 框架进行了最深入的集成,即借助于 Spring 天津工业大学 2010 届本科生毕业设计(论文) 10 IoC 和 Spring AOP 可以对 Hibernate 框架进行了最为有效的集成。Hibernate 本 身带给我们的不仅仅是一种软件开发的架构,更是一种值得推广的数据持久性解 决方案。这些数据持久性设计的概念是可以在脱离开 Hibernate 之后,推广应用 到更广泛的数据持久性处理领域中的。目前 EJB3.0 中的实体 Bean 的最新设计己 经采用了和 Hibernate 类似的解决方案。 2.3.3 Hibernate 的体系结构 Hibernate 作为完美的 ORM 解决方案,不仅仅管理 Java 类到数据库表的映射, 还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用 SQL 语句和 JDBC API 处理数据的时间。极大地减少了开发者与数据持久化相关的编程任务。 Hibernate 基本的体系结构图如图 2-4 所示: Hibernate Database Application Persistent objects Hibernate .propertiesXML Mapping 图 2-4 Hibernate 体系结构图 在 Hibernate 体系结构中主要包括以下几个重要的接口和类: (1) SessionFactory:针对单个数据库映射关系经过编译后的内存镜像,是 线程安全的。它是生成 Session 的工厂,并且要用到 ConnectionProvider 类。 该对象可以在进程或集群的级别上,为那些事务之间重用的数据提供可选的二级 缓存。 (2) Session:表示应用程序与持久层交互操作的一个单线程对象,此对象的 生存周期很短。其隐含了 JDBC 的链接操作,它是事务 Transaction 的工厂。其 会持有一个针对持久化对象的必选缓存,在根据持久化标识查找对象时会用到。 (3) 持久化对象及其集合:带有持久化状态的、具有业务功能的单线程对象。 这些对象可以是普通的 JavaBeans/POJO,唯一特殊的是他们与一个 Session 相关 联。这个 Session 被关闭的同时,这些对象也会脱离持久化状态,可以被应用程 序的任何层自由使用。 (4) 瞬态对象和托管对象:系统通过 new 关键字创建的 Java 实例,没有与 Session 相关联,此时该实例处于瞬态。瞬态实例可能是在被应用程序实例化后, 尚未进行持久化的对象。如果一个曾经持久化过的实例,但因为 Session 的关闭 天津工业大学 2010 届本科生毕业设计(论文) 11 则转化为托管状态。 (5) Transaction:应用程序用来指定原子操作单元范围的对象,它是单线程 的,生命周期很短。它通过抽象将应用从底层具体的 JDBC、JTA 以及 CORBA 事务 隔离开。某些情况下,一个 Session 之内可能包含多个 Transaction 对象。 (6) ConnectionPeovider:生成 JDBC 连接的工厂,同时具备连接池的作用。 它通过将应用从底层的 DataSource 或 DriverManager 隔离开。仅在应用程序扩 展时使用。 (7) TransactionFactory:生成 Transaction 对象实例的工厂。仅供开发者 扩展使用,无须应用程序直接访问。 2.4 Spring 框架 2.4.1 Spring 框架的概述 Spring 框架是由 Rod Johnson 创立的一个开放源码的应用框架。它是轻量级 的 J2EE 应用框架,旨在简化 J2EE 的开发,降低 J2EE 项目实施的难度。Spring 框架的贡献包括两个部分,首先是为 J2EE 应用提供了一个优雅的基础结构;另 外它还提供了许多旨在帮助开发人员更好的使用 J2EE 相关技术的工具性支持。 同时,Spring 框架也是一个分层架构,它由 7 个定义良好的模块组成。如图 2-5 显示了 Spring 框架的模块结构。 Spring Web MVC Spring DAO Spring AOP Spring Core Spring ORM Spring Context Spring Web 图 2-5 Spring 框架的模块结构图 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或 多个模块联合实现。每个模块的功能如下: (1) 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件 是 BeanFactory,它是工厂模式的完美实现。BeanFactory 使用控制反转(IoC)模 天津工业大学 2010 届本科生毕业设计(论文) 12 式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 (2) Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上 下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、 校验和调度功能等。 (3) Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编 程功能集
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件比较大小
- 物业智能系统培训
- 小红书培训计划
- 创建健康村培训
- 课件模板人物速写简单
- 小学语文荔枝课件大纲
- 初中防欺凌课件大纲
- 创建无烟家庭课件
- 课件朗读者模式
- 课件最大窗口快捷键设置
- 基于多方法融合构建麻醉专科护士核心能力评价指标体系的探索与实践
- 中建八局如何做好转型升级下的技术标编制工作
- 二年级上册体育与健康课教案
- 2025年铁路货装值班员(高级)职业技能鉴定参考试题库(含答案)
- 转让叉车协议书模板
- 2025-2030中国纳米气泡发生器行业市场发展趋势与前景展望战略研究报告
- (高清版)DB11∕T2279-2024社会单位消防安全评估规范
- 语文-云南省师范大学附属中学2025届高三下学期开学考试试题和答案
- 北京一年级数学试卷
- 低压电工(特种作业)取证近年考试真题(300题)
- 养老院老人衣物洗涤保养制度
评论
0/150
提交评论