成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過Hibernate 來映射 DB2 pureXML 數據的應用

數據庫
此文章主要介紹的是通過Hibernate 來映射 DB2 pureXML 數據的實際操作步驟,以下就是文章的主要內容的詳細描述,望大家在瀏覽之后會對其有更深的了解。

本文主要介紹的是正確使用 Hibernate 來簡化基于DB2 pureXML 的相關應用程序的實際開發我們主要是通過N個例子來映射 DB2 pureXML 的數據,減少開發難度。以下就是文章的主要內容的詳細描述,望大家在瀏覽之后會對其有更深的了解。

前提

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

Hibernate 簡介

如今的企業級應用程序的開發基本都是以面向對象的方式進行的,Java 社區豐富的資源為開發過程提供了產品質量和開發效率的雙重保障。然而,在數據庫層面,由于各種原因,比如使用習慣,性能考慮等因素,卻依舊沿襲了“實體 - 關系”的數據模型設計,將立體化的對象切割成為各個平面的表結構,然后再在這些表之間建立起來關聯。另一方面來講,數據庫本身的發展也遇到了瓶頸,暫無很好的辦法以直接的方式管理對象(本文指 Java 類的實例),提供基于對象的 CRUD( 增刪改查 ) 等操作,以及事務控制等。

基于以上考慮,開源的 Hibernate 作為一個關系型數據庫的對象映射框架,已經成為了企業級應用程序開發人員的首選。開發人員常常利用 Hibernate 作為粘合劑,把 Java 對象和關系型數據庫粘合起來,免去手工映射的繁瑣工作。

DB2 pureXML 的用武之地

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

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

DB2 pureXML 在這樣的背景下可以發揮其獨特的價值。無需將 XML 文檔拆分成關系表,可直接插入到數據庫中;查詢時,既可以把整個文檔從數據庫中取出來,也可以只摘取 XML 文檔的某若干個節點元素,還可以將某一個或多個元素作為查詢條件。數據更新時,既可以將整個 XML 文檔更新,也可以只更新文檔的若干元素。這些操作都是基于業界標準的 XQuery 和 SQL/XML 。關于 DB2 pureXML 的數據操作接口和方式,讀者可以參考相應文章,這里不再贅述。

這些特性無疑給了程序設計人員很大的想象空間和設計靈活性。

Hibernate 和 DB2 pureXML 如何共存

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

放棄 Hibernate 框架,改用 JDBC 來實現數據訪問接口。

筆者經過一些探索,發現事實并非如此。在 Hibernate 3.3.1GA 版本中,已經可以對 DB2 pureXML 的絕大多數操作提供支持。只不過這些支持方式尚不為人熟悉罷了。本文的剩余部分將分門別類的就如何在 Hibernate 框架之上開發 DB2 pureXML 的應用程序詳細介紹。

在閱讀以下內容的同時,讀者可以參考示例代碼進行嘗試。在開始之前,建議用戶創建包含 XML 示例表的 sample 數據庫。在 db2cmd 下運行 db2sampl – xml 即可。 XML 示例表將創建在當前用戶 schema 下。

各種查詢和對象映射方式

總體來講,在 Java 語言中對 XML 文檔的對象映射通常采用以下幾種方式 :

映射成為 DOM 對象 ;

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

 

對復雜多層次的 XML 文檔 , 映射成為若干個互相引用的 Java 類 ;

 

將 XML 文檔映射成為動態類的實例。

 

而在 Hibernate 里面,可以有如下更豐富的選擇。當然,這些選擇也只是對以上方式的擴展而已。

 

整體獲取 XML 文檔

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

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

原生 SQL 查詢

Hibernate 常用的查詢語言是 HQL,但是也支持數據庫原生 SQL 。用戶可以直接編寫原生 SQL 來支持具有數據庫獨有特性的 SQL 。如清單 1 所示,用戶編寫 SQL/XML,讀取 /customerinfo/name 節點和 /customerinfo 下的 Cid 屬性。

以上的相關內容就是對使用 Hibernate 映射 DB2 pureXML 數據的介紹,望你能有所收獲。

【編輯推薦】

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

 

 

責任編輯:佚名 來源: 萬國數據
相關推薦

2009-09-22 12:25:04

ibmdwDB2

2009-04-17 10:07:42

2010-08-20 12:49:49

DB2 pureXML

2011-11-30 21:46:24

ibmdwDB2 pureXML

2009-01-18 16:33:09

pureXMLDB2 pureXMLXML

2009-03-10 10:31:26

DB2XMLpureXML

2009-11-23 19:57:01

ibmdwDB2

2010-07-28 14:07:51

DB2數據庫

2009-03-03 12:58:14

pureXML大小寫DB2

2010-08-19 10:53:27

DB2dart 工具

2011-03-15 14:13:56

JDBCDB2數據庫

2010-08-11 09:14:33

DB2數據類型

2011-05-13 09:49:55

DB2數據移動

2010-08-26 11:05:39

DB2數據移動

2010-09-01 14:07:33

DB2映射

2010-08-10 15:30:21

2010-08-10 17:17:59

2011-03-11 16:02:03

DB2數據庫安裝

2010-08-04 08:52:35

2009-07-06 17:34:26

遠程復制DB2
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区四区在线观看 | 国产1区2区| 91不卡在线 | 欧美成人猛片aaaaaaa | 极品的亚洲 | 亚洲女人天堂成人av在线 | 丁香六月伊人 | 国产精品不卡一区 | 一区二区三区四区电影视频在线观看 | 亚洲 欧美 日韩 精品 | 国产欧美一区二区久久性色99 | 日韩欧美三区 | 久久一区二区三区四区 | 欧美日韩精品久久久免费观看 | 99久久精品免费看国产四区 | 国产成人短视频在线观看 | 国产一区二区视频在线观看 | 国产高清精品一区二区三区 | 久久久久久久久中文字幕 | 成人中文网 | 亚洲精品一区二区三区中文字幕 | 国产精品中文字幕在线播放 | 一级全黄视频 | 欧美黄色一级毛片 | 亚洲深夜福利 | 国产电影精品久久 | 久久一级大片 | 亚洲精品不卡 | 青草青草久热精品视频在线观看 | 精品国产精品一区二区夜夜嗨 | 中文字幕国产 | 欧美性猛交一区二区三区精品 | 久久精品在线免费视频 | 99re热精品视频 | 日韩在线免费 | 国产一级一级毛片 | 91精品国产99久久 | 在线播放一区二区三区 | 99在线免费视频 | 少妇无套高潮一二三区 | 亚欧午夜 |