Spring框架调用存储过程是如何实现的


Spring 框架已经作为逻辑层被广泛的用于轻量级的J2EE开发中。Spring 框架可以很好的和Struts, WebWork, Hibernate等其他开源项目集成在一起。尤其在重构现有应用的使用,Spring 框架可以提供很多帮助。存储过程可以用来封装业务逻辑,控制用户权限,以及做日常的增删改查(CRUD)。在重构已有系统的时候,一般存储过程中的业务逻辑并不需要改变,只是调用存储过程的方式需要进行调整。Spring 框架提供了完整的存储过程封装,数据源管理的功能,使用Spring 框架,开发人员可以很容易的构建轻量级J2EE应用。本文将给出一个使用Spring 框架和Struts来调用存储过程的完整例子,包括如何传入参数,如何获得传出参数,如何获得结果集以及如何获得多个结果集。

  读者定位为具有DB2和Web开发经验的开发和设计人员。

  读者可以学习到如何使用Spring框架来调用存储过程,可以通过文中的代码快速构建一个使用Spring框架的Web应用。本文的例子将包括使用Apache Struts进行网页表单的提交和验证,使用Spring框架来调用具有输入输出参数和返回结果集的存储过程,结果集将通过DisplayTag来进行显示。

  Spring是一个广泛应用于逻辑层的开源框架,它使构建J2EE应用程序的Java开发人员可以直达实质问题的核心,而不是在提供服务的细节上花费大量时间。您可以通过developerWorks的文章"Spring 系列: Spring 框架简介"来了解Spring框架。Spring框架中一个重要的模块就是Spring DAO,它允许开发者在不同数据访问技术间切换,而且Spring提供了统一的异常处理机制,在切换的同时不用考虑异常处理。

  当前很多应用程序使用存储过程来封装业务逻辑,在重构已有应用的时候,只是更改调用存储过程的方式。在调用存储过程方面现在大多直接采用JDBC的操作处理,这种方法需要创建数据库连接、创建statement语句、关闭ResultSet、关闭statement、关闭数据库连接、处理异常等等,一方面这些代码与业务逻辑不相关,另一方面也可能会给应用引入bug。因此很多人更青睐于使用数据持久化框架。在数据持久化框架中Hibernate 倍受人们关注,它主要提供Java对象与关系数据库的映射(O/R Mapping),这样只需关心操作java对象而不必关心底层数据。在Hibernate 3.0中也提供了对存储过程查询的支持,但是要求存储过程必须返回一个结果集,并且关键的是应用要遵循O/R Mapping的设计要求来架构应用系统。Spring DAO为JDBC提供了抽象层,使得开发者更高效的使用JDBC,它提供了对存储过程的支持,通过抽象类org.springframework.jdbc.object.StoredProcedure我们可以方便的调用存储过程,支持输入参数、输出参数和多个结果集。下面将通过一个实例详细的介绍使用Spring框架来调用存储过程的方法。

  实例将实现在页面表单输入客户代码custNum,然后通过存储过程查询数据库中客户信息,得到所有客户信息和所查客户信息,并将其返回结果在页面上显示。您可以下载实例代码,代码可以在Eclipse环境中运行,对照代码看这篇文章更直观。

  1. 编写DB2存储过程

  我们首先来看DB2的存储过程。存储过程一般被用来返回数据库中表的数据或者对表的数据进行更改。在这里我们使用存储过程从表中获得结果集。

  首先我们需要建立DB2环境:

  1) 把远程DB2服务器编制到本地。在这里我们远程的DB2主机地址是zxl01.cn.ibm.com,端口是50001

  清单1


  db2 CATALOG TCPIP NODE node01 REMOTE zxl01.cn.ibm.com SERVER 50001

  2) 在本地建立远程DB2的别名。在这里我们使用testDB作为别名。

  清单2



相关阅读:
Linux环境变量的设置
ASP.NET MVC TempData机制分析
javascript下计数器每秒自动加1
SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)
random()方法和pow()方法
用VMware GSX和W2K 群集服务实现Exchange群集
js 弹出菜单/窗口效果
制作网页的5条非常不错的建议
Oracle的sql语句练习题含答案(二
PHP与SQL注入攻击[三]
CSS标示导航条当前所在频道
Linux终端图形库 Curses简介和实例分析
教你解决Windows 7操作系统中软件乱码问题
jQuery是JavaScript框架:13款非常有用的jQuery插件
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 皇帝的新装教学设计 人物特写之老朱 2015高中校领导个人述职报告 “开学第一天"观后感作文450字 讲述东北米王的创业传奇 走遍天下书为侣作文 感悟生活:生活是一面镜子 难忘的元旦联欢会作文 花儿向南开 县城市管理行政执法局年度工作计划 我眼中的闵行最美的人作文1200字 2011年两会思想汇报:蓝图已描绘,目标已明确 我爱我的国家 小院花事 那一刻,我长大了作文350字 村主任助理年终总结 以和为贵作文800字 世界里生存 心的伤 读《从爱都爱的路上》有感作文600字 社区居委会年终总结 让我难忘的事作文200字 一个地方一个梦一个人一生! 我像是一颗尘 《小猴下山》读后感350字 烟花易冷,情难忘 爱好作文1000字 2015主管年终述职报告 2015教师述职报告参考范文 在四川吃辣 父母和孩子作文500字 中国古代神话故事都有哪些 怎一个爱字了的 更深露重,恋恋秋风 审判地球作文1600字 寻找心灵的春天600字 在全县物业管理工作现场会议上的讲话 市机关事业单位社会保险处2014年工作思路 2016安全生产月演讲稿 小区里的绿草地 请不要随便生气! 必“读”:比萨大学的学院气息 我想为妈妈做一件事作文500字 我喜欢的仙人掌 学校教师师德师风优秀承诺书 安全工作会议上的讲话 如兰之爱,清新淡雅 父母对孩子的成长寄语、家长对孩子的成长寄语、对孩子的寄语 小学五年级作文500字:慈善的不是血,是心 店长助理竞聘报告

Copyright © 2016 phpStudy |