偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

通過(guò)Hibernate 來(lái)映射 DB2 pureXML 數(shù)據(jù)的應(yīng)用

數(shù)據(jù)庫(kù)
此文章主要介紹的是通過(guò)Hibernate 來(lái)映射 DB2 pureXML 數(shù)據(jù)的實(shí)際操作步驟,以下就是文章的主要內(nèi)容的詳細(xì)描述,望大家在瀏覽之后會(huì)對(duì)其有更深的了解。

本文主要介紹的是正確使用 Hibernate 來(lái)簡(jiǎn)化基于DB2 pureXML 的相關(guān)應(yīng)用程序的實(shí)際開(kāi)發(fā)我們主要是通過(guò)N個(gè)例子來(lái)映射 DB2 pureXML 的數(shù)據(jù),減少開(kāi)發(fā)難度。以下就是文章的主要內(nèi)容的詳細(xì)描述,望大家在瀏覽之后會(huì)對(duì)其有更深的了解。

前提

讀者需要對(duì) Hibernate 框架和 DB2 pureXML 相關(guān)技術(shù),如 SQL/XML,XQuery 等有一定的了解。本文所述基于 DB2 V9.5 和 Hibernate 3.3.1GA 。由于 DB2 V9.7 的 Sample 數(shù)據(jù)庫(kù)中示例 XML 表中不再包含命名空間,如果讀者使用 DB2 V9.7,讀者需要在示例代碼中去掉對(duì)命名空間的聲明。

Hibernate 簡(jiǎn)介

如今的企業(yè)級(jí)應(yīng)用程序的開(kāi)發(fā)基本都是以面向?qū)ο蟮姆绞竭M(jìn)行的,Java 社區(qū)豐富的資源為開(kāi)發(fā)過(guò)程提供了產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的雙重保障。然而,在數(shù)據(jù)庫(kù)層面,由于各種原因,比如使用習(xí)慣,性能考慮等因素,卻依舊沿襲了“實(shí)體 - 關(guān)系”的數(shù)據(jù)模型設(shè)計(jì),將立體化的對(duì)象切割成為各個(gè)平面的表結(jié)構(gòu),然后再在這些表之間建立起來(lái)關(guān)聯(lián)。另一方面來(lái)講,數(shù)據(jù)庫(kù)本身的發(fā)展也遇到了瓶頸,暫無(wú)很好的辦法以直接的方式管理對(duì)象(本文指 Java 類(lèi)的實(shí)例),提供基于對(duì)象的 CRUD( 增刪改查 ) 等操作,以及事務(wù)控制等。

基于以上考慮,開(kāi)源的 Hibernate 作為一個(gè)關(guān)系型數(shù)據(jù)庫(kù)的對(duì)象映射框架,已經(jīng)成為了企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)人員的首選。開(kāi)發(fā)人員常常利用 Hibernate 作為粘合劑,把 Java 對(duì)象和關(guān)系型數(shù)據(jù)庫(kù)粘合起來(lái),免去手工映射的繁瑣工作。

DB2 pureXML 的用武之地

Java 和 XML 可謂是天生的盟友。兩者都可以用來(lái)描述復(fù)雜的對(duì)象,而且兩者之間的轉(zhuǎn)換也易如反掌。有許許多多的開(kāi)源項(xiàng)目可以支持 Java 對(duì)象到 XML 的序列化 (serialization) 和 XML 文檔到 Java 對(duì)象的反序列化 (de-serialization) 。 Java 利用 SAX 和 DOM 方式解析 XML 文檔,并進(jìn)行相應(yīng)的操作,也是得心應(yīng)手。

如果給 Java 設(shè)計(jì)人員兩個(gè)選擇,其一是拆分 Java 對(duì)象為若干個(gè)復(fù)雜的表,這些表間又有千絲萬(wàn)縷的聯(lián)系,其二是直接將 Java 對(duì)象序列化成 XML,然后存入數(shù)據(jù)庫(kù),同時(shí)保證插入查詢(xún)等數(shù)據(jù)庫(kù)操作的性能;我想很少有人可以拒絕第二個(gè)選擇。

DB2 pureXML 在這樣的背景下可以發(fā)揮其獨(dú)特的價(jià)值。無(wú)需將 XML 文檔拆分成關(guān)系表,可直接插入到數(shù)據(jù)庫(kù)中;查詢(xún)時(shí),既可以把整個(gè)文檔從數(shù)據(jù)庫(kù)中取出來(lái),也可以只摘取 XML 文檔的某若干個(gè)節(jié)點(diǎn)元素,還可以將某一個(gè)或多個(gè)元素作為查詢(xún)條件。數(shù)據(jù)更新時(shí),既可以將整個(gè) XML 文檔更新,也可以只更新文檔的若干元素。這些操作都是基于業(yè)界標(biāo)準(zhǔn)的 XQuery 和 SQL/XML 。關(guān)于 DB2 pureXML 的數(shù)據(jù)操作接口和方式,讀者可以參考相應(yīng)文章,這里不再贅述。

這些特性無(wú)疑給了程序設(shè)計(jì)人員很大的想象空間和設(shè)計(jì)靈活性。

Hibernate 和 DB2 pureXML 如何共存

Hibernate 作為一個(gè) ORM(Object-Relational Mapping) 工具,首先考慮的是對(duì)象(Object)和關(guān)系表(Relational)之間的映射關(guān)系。而 DB2 pureXML 所采用的 SQL/XML 和 XQuery 接口并沒(méi)有在 Hibernate 中得到直接的支持。咋看起來(lái),似乎為了使用 DB2 pureXML,只能

放棄 Hibernate 框架,改用 JDBC 來(lái)實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)接口。

筆者經(jīng)過(guò)一些探索,發(fā)現(xiàn)事實(shí)并非如此。在 Hibernate 3.3.1GA 版本中,已經(jīng)可以對(duì) DB2 pureXML 的絕大多數(shù)操作提供支持。只不過(guò)這些支持方式尚不為人熟悉罷了。本文的剩余部分將分門(mén)別類(lèi)的就如何在 Hibernate 框架之上開(kāi)發(fā) DB2 pureXML 的應(yīng)用程序詳細(xì)介紹。

在閱讀以下內(nèi)容的同時(shí),讀者可以參考示例代碼進(jìn)行嘗試。在開(kāi)始之前,建議用戶(hù)創(chuàng)建包含 XML 示例表的 sample 數(shù)據(jù)庫(kù)。在 db2cmd 下運(yùn)行 db2sampl – xml 即可。 XML 示例表將創(chuàng)建在當(dāng)前用戶(hù) schema 下。

各種查詢(xún)和對(duì)象映射方式

總體來(lái)講,在 Java 語(yǔ)言中對(duì) XML 文檔的對(duì)象映射通常采用以下幾種方式 :

映射成為 DOM 對(duì)象 ;

摘取 XML 文檔中的部分元素 , 映射成為普通 Java 類(lèi) ;

 

對(duì)復(fù)雜多層次的 XML 文檔 , 映射成為若干個(gè)互相引用的 Java 類(lèi) ;

 

將 XML 文檔映射成為動(dòng)態(tài)類(lèi)的實(shí)例。

 

而在 Hibernate 里面,可以有如下更豐富的選擇。當(dāng)然,這些選擇也只是對(duì)以上方式的擴(kuò)展而已。

 

整體獲取 XML 文檔

Hibernate 支持將 XML 文檔直接映射為 java.lang.String 類(lèi)型。因此,如果希望獲取整個(gè) XML 文檔,可以采用這種方式將 XML 文檔返回為 Java 的 String 對(duì)象,然后在 Java 程序中使用 JDOM 等工具對(duì)該對(duì)象做進(jìn)一步處理。這種處理方式和對(duì) CLOB 數(shù)據(jù)類(lèi)型的處理方式類(lèi)似。

另外,Hibernate 允許用戶(hù)自定義數(shù)據(jù)類(lèi)型,由該數(shù)據(jù)類(lèi)型和數(shù)據(jù)庫(kù)中 XML 列直接交互。讀者可以參考https://www.hibernate.org/466.html,該篇文章介紹了如何編寫(xiě)自定義用戶(hù)類(lèi)型來(lái)將 DB2 中的 XML 列映射成為 DOM 對(duì)象。

原生 SQL 查詢(xún)

Hibernate 常用的查詢(xún)語(yǔ)言是 HQL,但是也支持?jǐn)?shù)據(jù)庫(kù)原生 SQL 。用戶(hù)可以直接編寫(xiě)原生 SQL 來(lái)支持具有數(shù)據(jù)庫(kù)獨(dú)有特性的 SQL 。如清單 1 所示,用戶(hù)編寫(xiě) SQL/XML,讀取 /customerinfo/name 節(jié)點(diǎn)和 /customerinfo 下的 Cid 屬性。

以上的相關(guān)內(nèi)容就是對(duì)使用 Hibernate 映射 DB2 pureXML 數(shù)據(jù)的介紹,望你能有所收獲。

【編輯推薦】

  1. 使用DB2臨時(shí)表時(shí)有哪些問(wèn)題是需要注意的?
  2. 對(duì)DB2 9.7武器的功能的描述
  3. IBM DB2連接集中器的基本操作原理
  4. DB2 V9.5 新特性有哪些好處?
  5. DB2 batch update注意事項(xiàng)的描述

 

 

責(zé)任編輯:佚名 來(lái)源: 萬(wàn)國(guó)數(shù)據(jù)
相關(guān)推薦

2009-09-22 12:25:04

ibmdwDB2

2009-04-17 10:07:42

2009-01-18 16:33:09

pureXMLDB2 pureXMLXML

2011-11-30 21:46:24

ibmdwDB2 pureXML

2010-08-20 12:49:49

DB2 pureXML

2009-03-10 10:31:26

DB2XMLpureXML

2010-07-28 14:07:51

DB2數(shù)據(jù)庫(kù)

2009-11-23 19:57:01

ibmdwDB2

2009-03-03 12:58:14

pureXML大小寫(xiě)DB2

2010-08-19 10:53:27

DB2dart 工具

2010-08-11 09:14:33

DB2數(shù)據(jù)類(lèi)型

2011-03-15 14:13:56

JDBCDB2數(shù)據(jù)庫(kù)

2010-09-01 14:07:33

DB2映射

2010-08-26 11:05:39

DB2數(shù)據(jù)移動(dòng)

2011-05-13 09:49:55

DB2數(shù)據(jù)移動(dòng)

2011-03-11 16:02:03

DB2數(shù)據(jù)庫(kù)安裝

2010-08-10 17:17:59

2010-08-10 15:30:21

2009-07-06 17:34:26

遠(yuǎn)程復(fù)制DB2

2010-08-04 08:52:35

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)