快速业务通道

Struts处方 - Hibernate与Struts - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

Struts处方 - Hibernate与Struts

时间:2011-04-09

持久层是一个应用系统最基本的部份。很显然的,如果没有持久层,所有的工作都将丢失 。但是,对不同的人来说持久层意味着不同的东西。持久化时间的长短是选择持久层储存媒 介的基本衡量标准之一。例如,对于生命周期为一个用户会话的数据来说,Http session是 非常合适的。与之对应的,跨越多个session,或者多个用户的持久化则需要一个数据库来保 持。数据的数量是另一个非常重要的衡量标准。例如,最佳实践表明大量的数据最好不要被 存储在一个Http会话中。在这些情况下,你都应该考虑使用数据库。在这篇文章中,我们的 目标就是数据库持久层。

你选择的数据库类型对你有架构与设计都有重要的影响。作为面向对象的开发人员,我们 倾向于把数据描绘成描述手上商业问题的一组相互关联的对象—这常被称为域模型。 但是, 最常用的存储媒介是基于关系模型的。除非我们的对象模型映射成一个关系结构,否则内存 中我们数据的表示就会与持久化它的方法不一致。这个问题也被称作不对称问题。最流行的 解决这种不对称问题的是一组被称为对象关系映射工具。一个ORM工具是被用来把数据从对象 视图转换为关系型、提供诸如创建、读、更新、删除(CRUD)等持久性服务的软件。有许多的 关于ORM工具的论文,但是从本质上来说,他们谈论的都是对象映射模式。最流行的ORM工具 是开源的Hibernate工程。

在这篇文章中,我们展示了如何在一个Struts项目中应用Hibernate。另外,我们将展示 如何建立一个Struts插件来提升你系统的性能。

处方

在这个文摘中,我们使用一个例子来展示你在struts项目中使用hibernate时所需要的所 有东西。我们将建立一个应用程序来获取和展示从化学元素周期表里取出的元素。这个应用 程

序提供给用户一个查找页来通过元素符号来查找元素。应用程序将查询数据库里匹配这个 元素符号名的记录并返回查找到的元素信息来响应用户请求。

首先我们将展示如何启动Hypersonic服务器。当数据库服务器启动后,我们建立示例程序 所需要的表与数据。一旦数据库准备运行了,我们将建立使用Hypersonic数据库服务器所需 的Hibernate的所有东西。接下来的步骤是在action里调用Hibernate来处理数据库读取来响 应查询请求。因为建立Hibernate的Factory对象是非常耗资源的,我们建立一个Struts plug-in来建立factory并把它保存在context里。

让我们从建立Hypersonic数据库服务器开始。你需要从http://hsqldb.Sourceforge.net/ 下载它。放置hsqldb.jar在你的classpath路径里,从Dos窗口中敲入以下命令来启动 Hypersonic:

java org.hsqldb.Server

虽然不同版本的Hypersonic的服务器响应不同。下面的应答是典型的Hypersonic已经准备 好响应数据库请求的应答:

Server 1.6 is running

Press [Ctrl]+{c} to abort

随着数据库服务器的启动,我们可以建表和填充数据,如下列表1所示:

Listing 1. 建立元素表

create table elements (id integer(3) IDENTITY,    name char(30),    number char(30),    mass char(30),    symbol char(2));    CREATE UNIQUE INDEX ui_elements_pk ON elements (symbol)insert into elements ( name, number, mass, symbol) values (''Manganese'',''25'',''55'',''Mn'');insert into elements ( name, number, mass, symbol) values (''Zinc'',''30'',''65'',''Zn'');insert into elements ( name, number, mass, symbol) values (''Thulium'',''69'',''169'',''Tm'');insert into elements ( name, number, mass, symbol) values (''Californium'',''98'',''251'',''Cf'');insert into elements ( name, number, mass, symbol) valu

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号