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 交通频道 作文范文 天杀的运动会 小茜过生作文700字 我的潮人语录 七一建党节目 2012年县招商局党风廉政建设工作总结 现在很伤感 绝望如你 高中高二作文400字:海豚表演 小学六年级作文550字:《这一天》 我和我的同桌作文1000字 初中初一作文750字:夸夸我的姓 一个彩民的内心独白 去常庄水库150字 人教版八年级下册五单元作文:留得枯荷听雨声作文1900字 采风450字 2015管辖权异议上诉状 计生协2015上半年重点工作汇报 统计工作的主要职责 军旅短信拯救了我的爱情 读《数码宝贝》200字 毕业前的暑假 描写耳朵的好词好句 国庆节800字 小学教学工作专题总结 世界地球日由来 县骨科医院年度工作总结 看看镜子里的自己 关于无公害蔬菜基地建设的情况汇报 谈读书作文700字 有益健康的四个动作 那些年我们回忆作文800字 七夕,我陪他过作文500字 我要当公主 回家记600字 有趣的知了 爱你,痛彻我心扉 5个朋友决定你的富贵[人脉] 孩子,长大后别当老师 人生感悟:低头走好上坡路,昂首走好下坡路 小学六年级作文800字:《爱的教育》读后感 我的堂弟作文 老师赞礼 醉花阴(学士生日) 同桌的你作文200字 菊花的优美句子 理想课堂教学改革实施方案 重点工程先进集体水电施工队伍事迹材料 太原市2006年中考语文试题 重企企业文化建设研究 转眼青春散场

Copyright © 2016 phpStudy |