WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院数据库DB2 DB2 XML 编程,第 2 部分: 在应用程序体系结构中使... 阅读

DB2 XML 编程,第 2 部分: 在应用程序体系结构中使用 XML 数据库支持

 2009-11-11 00:00:00 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬灚瀚梺鍨儏閳ь剙绉归弻銊р偓闈涙啞閻h京鈧敻鍋婇崰鏍х暦閿燂拷
核心提示: 在上面的查询中,必须构造外层的 Customer 元素并添加来自 CUSTXML 列数据的属性,DB2 XML 编程,第 2 部分: 在应用程序体系结构中使用 XML 数据库支持(6),DB2 Viper 2(beta)支持 XQuery 更新表达式,可以修改 XML 文档,就会发现它们的逻辑非

在上面的查询中,必须构造外层的 Customer 元素并添加来自 CUSTXML 列数据的属性。DB2 Viper 2(beta)支持 XQuery 更新表达式,可以修改 XML 文档,所以不需要构造外层的 Customer 元素。可以使用来自客户表的一个 XML 文档,并将来自购买表的商品数据作为子元素插入其中。


清单 4. 针对两个 XML 列的 Viper 2 查询
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 hardeep as "customerid" )) 

在上面的查询中,不但搜索、获取和合并了数据库中存储的 XML 文档部分,还在产生的 XML 中添加了新元素。另外,hardeep 被隐式转换为 XML 类型(xs:string)。

对比数据库查询和 Java 应用程序代码

如果将上面的查询与第 1 部分中的 Java 代码(清单 6. 重写应用程序来使用 XML 模型)做一下对比,就会发现它们的逻辑非常相似。

从 CUSTOMER_TABLE 中选择 Customer 信息。

构造一个 Items 元素并在 PURCHASE_TABLE 中搜索这位客户购买的所有商品。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB XML 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接