使用 Spring 框架调用 DB2 存储过程
2008-09-09 16:30:07 来源:WEB开发网实例将实现在页面表单输入客户代码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
db2 CATALOG DB testDB AT NODE node01
3) 创建customer数据表
清单3
DROP TABLE DSW.CUSTOMER
@
CREATE TABLE DSW.CUSTOMER
(
CUST_NUM VARCHAR(10) NOT NULL,
CUST_NAME VARCHAR(35) NOT NULL,
ADDRESS VARCHAR(35) NOT NULL,
CITY VARCHAR(35) NOT NULL,
COUNTRY VARCHAR(3) NOT NULL,
ADD_DATE TIMESTAMP NOT NULL
)
@
ALTER TABLE DSW.CUSTOMER
ADD CONSTRAINT CUSTOMER_PK
PRIMARY KEY (CUST_NUM)
@
4) 创建存储过程
清单4
DROP PROCEDURE DSW.S_CUSTOMER
@
CREATE PROCEDURE DSW.S_CUSTOMER (
OUT poStatus INTEGER,
IN piCust_num VARCHAR(10)
)
LANGUAGE SQL
SPECIFIC DSW.S_CUSTOMER
RESULT SETS 2
P1: BEGIN NOT ATOMIC
-------------------------------------------------------------
-- CONDITION declaration
-------------------------------------------------------------
DECLARE sqlReset CONDITION for sqlstate '80100';
-- Generic Variables
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
-- Generic handler variables
DECLARE hSqlcode INTEGER DEFAULT 0;
DECLARE hSqlstate CHAR(5) DEFAULT '00000';
DECLARE v_Cnt INT;
-- Cursor for returning RS to the client
DECLARE cursor1 CURSOR WITH RETURN TO CLIENT FOR (
SELECT CUST_NUM, CUST_NAME FROM DSW.CUSTOMER
);
DECLARE cursor2 CURSOR WITH RETURN TO CLIENT FOR (
SELECT * FROM DSW.CUSTOMER
WHERE CUST_NUM = piCust_num
);
OPEN cursor1;
OPEN cursor2;
SET poStatus = 2;
RETURN poStatus;
END P1
@
更多精彩
赞助商链接