DB2 XML 编程,第 2 部分: 在应用程序体系结构中使用 XML 数据库支持
2009-11-11 00:00:00 来源:WEB开发网循环遍历列表中的每个商品并将它们插入 Items 元素。
将 Items 元素插入 Customer 元素。
创建存储过程
为了将数据库中的业务逻辑与应用程序代码隔离开,一种好方法是为这个查询创建一个存储过程。
清单 5. 创建存储过程CREATE PROCEDURE customerItems(IN custid varchar(12))
DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE c_cur CURSOR WITH RETURN FOR
values(xmlquery('
for $Customer in db2-fn:xmlcolumn( "CUSTOMER_TABLE.CUSTXML")/Customer
let $items:=(<Items>{
for $Customer0 in db2-fn:xmlcolumn("PURCHASE_TABLE.ITEMXML")/Customer
where $Customer0/@customerid= $Customer/@customerid
return $Customer0/Item
}</Items>)
where $Customer/@customerid= $customerid
return
transform
copy $cust:=$Customer
modify(
do insert $items as last into $cust)
return $cust
' passing custid as "customerid" ))
OPEN c_cur;
END
用存储过程调用替代应用程序代码
应用程序代码现在可以对 DB2 进行存储过程调用并将 XML 传递给 DOM 包装器。第 1 部分中的 XML 数据模型的应用程序代码(清单 6. 重写应用程序来使用 XML 模型,2-8 行)可以简化为:
2. ResultSet dbResult = dbstmt.executeQuery("call customerItems ("+custid+")"
3. XMLParse customerXML = new XMLParse(dbResult. getString(1));
- ››xml文件正确性验证类实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
- ››编程实例 一个简单的智能感知效果
- ››DB2 存储过程中如何使用 Optimization Profile
- ››DB2 pureScale 新特性 -- Member Restart
- ››XML数据读取方式性能比较(一)
更多精彩
赞助商链接