當前位置:首頁 » 數據倉庫 » 資料庫映射文件有什麼好處
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫映射文件有什麼好處

發布時間: 2023-05-21 12:18:14

A. sql server 2005 將資料庫中的數據映射為哪兩類文件作用是什麼

主要數據文件是資料庫的起點,指向資料庫中文件的其它部分。每個資料庫都有一個主要數據文件。
主要數據文件的推薦文件擴展名是
.mdf。主要數據文件包含資料庫的啟動信息,並指向資料庫中的其他文件。
用戶數據和對象可存儲在此文件中,也可以存儲在次要數據文件中。每個資料庫有一個主要數據文件。主要數據文件的建議文件擴展名是
.mdf。
sql
server的每個資料庫是以兩個文件存放的,一個後綴名為mdf,是數據文件,另一個後綴名為ldf,為日誌文件。因此只要定期復制這兩個文件,就可以達到備份的效果。

B. Hibernate框架ORM的實現原理

東方標准國際軟體專業講師,曾經負責過的重大的大型項目包括:全軍武器裝備

質量管理系統、全軍辦公自動化系統、日本NTT電信管理系統等。主要著作包括

《ASP.NET開發答疑200問》《ASP.NET開發實例導航》等。畢業於北京大學計算

機專業。

1. 什麼是ORM

ORM的全稱是Object Relational Mapping,即對象關系映射。它的實現思想就是

將關系資料庫中表的數據映射成為對象,以對象的形式展現,這樣開發人員就可

以把對資料庫的操作轉化為對這些對象的操作。因此它的目的是為了方便開發人

員以面向對象的思想來實現對資料庫的操作。

2.什麼是Hibernate

對於Hibernate的稱呼有很多,比如工具、技術、框架以及解決方案等,這些都

可以,重要的是大家要知道它的作用。在這里我習慣性稱它為框架,它是一種能

實現ORM的框架。能實現ORM這個功能的框架有很多,Hibernate可以說是這些框

架中最流行、最受開發者關注的,甚至連JBoss公司也把它吸收進來,利用它在

自己的項目中實現ORM功能。

3.ORM的實現原理

現在在Java領域大家對Hibernate的討論很多,比如它的優缺點、如何應用、錯

誤如何解決以及把它和Struts/Spring等框架相結合作為整個系統的解決方案。

在這里我想和大家探討一些更深層次的話題,那就是Hibernate是如何實現ORM的

功能?如果讓我們自己開發一款實現ORM功能的框架需要怎麼做?其實這些問題

就是圍繞著一個詞,那就是「映射」,如果我們知道如何實現這種映射那麼我們

也能夠開發出自己的一款ORM框架。會使用 Hibernate的開發人員都知道,在使

用它實現ORM功能的時候,主要的文件有:映射類(*.java)、映射文件

(*.hbm.xml)以及資料庫配置文件(*.properties或*.cfg.xml),它們各自的

作用如下。

⑴映射類:它的作用是描述資料庫表的結構,表中的欄位在類中被描述成屬性,

將來就可以實現把表中的記錄映射成為該類的對象。

⑵映射文件:它的作用是指定資料庫表和映射類之間的關系,包括映射類和數據

庫表的對應關系、表欄位和類屬性類型的對應關系以及表欄位和類屬性名稱的對

應關系等。

⑶資料庫配置文件:它的作用是指定與資料庫連接時需要的連接信息,比如連接

哪中資料庫、登錄用戶名、登錄密碼以及連接字元串等。

在這三種主要的文件中,映射類為普通Java源文件、映射文件為XML格式、數據

庫配置文件為Properties格式或者是XML格式。想理解「映射」 首先我們需要知

道如何解析這三種文件,即解析XML格式文件、解析Properties格式文件和解析

Java類文件。下面我們來分別探討一下如何實現這些文件的解析。

⑴如何解析XML文件

前面我們說過映射文件是XML格式,資料庫配置文件也可以是XML格式,因此如果

能解析XML文件我們就可以獲取這兩個文件的信息。XML文件格式我簡單做下介紹

,比如tom這句就是一個XML格式的描述,name代表節點,節點必須有開始標記和

結束標記,在開始標記中我們可以添加一些屬性的聲明比如sex。解析XML的技術

可以分為兩類那就是SAX和DOM,這兩種方式的差別和優缺點大家可以上網查閱或

者我們會在以後的文章中提出,請大家關注。實現解析XML文件的功能很方便,

我們可以通過下載第三方的一些工具包如xml-apis.jar和 xercesImpl.jar等,

也可以使用JDK自帶的工具類DocumentBuilderFactory、DocumentBuilder、

Document、Element等等,大家可以通過API文擋查閱這些類的說明。通過這些類

我們可以把XML文件的信息讀入內存並通過類中的某些方法獲取指定節點的名字

、值、屬性名、屬性值這些信息。

⑵解析Properties文件

資料庫配置文件可以是XML格式也可以是Properties格式,Properties文件一般

採用「屬性名=屬性值」的形式描述信息。如果配置文件採用Properties文件描

述,我們就需要想辦法解析這種類型的文件了。想解析Properties文件大家就需

要熟悉Properties這個類了,這個類有一些常用方法比如,load()載入指定文件

並讀取文件中的屬性信息,PropertyNames()返回所有屬性名,getProperty ()

返回指定屬性名的屬性值。通過解析Properties文件我們可以得到連接資料庫必

要的信息,然後通過底層JDBC技術與資料庫建立連接。

⑶解析Java類文件

通過解析映射文件和資料庫配置文件我們可以建立資料庫的連接,可以得到映射

類的名字、屬性名、資料庫表名、欄位名以及類型等信息。要把資料庫中表的數

據映射成為對象,首先需要把表中的記錄取出,然後將每個欄位值給映射類對象

的每個屬性,這個賦值過程要調用對象中的set方法。我們現在通過映射文件只

知道類名和屬性名,如何根據類名和屬性名調用相應的set和get方法,是一個關

鍵問題。在Java中有一種機制叫反射機制,使用這種機制我們可以得到類的信息

,包括類只用的修飾符、方法、屬性、繼承的父類以及實現介面等信息。反射機

制相關的類有Class、Field、Method以及 Constructor等。通過Class的

getFields()、getMethods()和getConstructors()方法得到相應的屬性、方法和

構造方法。通過Field類的getName()、getType()和getModifiers()方法得到相

應的屬性名、屬性類型、屬性修飾符信息。通過Method類getReturnType()可以

獲取方法的返回類型,invoke()方法可以根據給定的方法名和參數值執行對象中

對應的方法。我們可以首先通過以上方法獲取類中的屬性名,然後拼寫成setXXX

和getXXX方法名,最後根據方法名執行對應的方法,將資料庫數據載入到對象中



此外要實現Hibernate機制還會涉及到一個技術點,那就是如何獲取資料庫的相

關信息。要實現這個功能,就需要大家了解JDBC的 DataBaseMetaData類和

ResultSetMetaData類,通過這兩個類的方法我們就可以獲取資料庫表的欄位名

、類型、大小等相關信息。

C. XML 和資料庫之間的映射有什麼作用

樓主 首先我們應該明白xml的作用:
XML的簡單使其易於在任何應用程序中讀寫數據,這使XML成為數據交換的唯一公共語言,雖然不同的應用軟體也支持其它的數據交換格式,但不久之後他們都將支持XML,那就意味著程序可以更容易的與Windows、Mac OS, Linux以及其他平台下產生的信息結合,然後可以很容易載入XML數據到程序中並分析他,並以XML格式輸出結果。
————————————————————————
由上面我們可以得知,XML成為數據交換的唯一公共語言,異構系統 甚至 異構平台的信息交互 都要靠xml傳輸數據,舉個例子:
.net 開發的系統 和 java開發的系統 如何進行數據交換,如何進行深度整合和互操作,考得就是webservice,而現在webservice數據格式一般都是採用xml的,因為xml是數據交換的事實上的工業標准了,通過它我們可以「穿透那個可親又討厭的防火牆」. 呵呵

數據一般都是從資料庫中取出的吧,所以 研究xml與資料庫數據的互相轉化和映射關系,就顯的非常重要了。

————————————————————————

XML在Web領域已經得到了廣泛的應用,而XML資料庫一直是個研究熱點。各資料庫廠商及研究機構紛紛投入對XML技術的研究及開發。大體上可以把XML資料庫分為兩類:原生XML資料庫(Native XML Database)和使能XML資料庫(Enable XML Database)。而XML數據一般可劃分為粗粒度、中粒度及細粒度三種形式。以文檔為中心的粗粒度形式,一般採用原生XML資料庫,而以數據為中心的細粒度形式一般採用使能XML資料庫。

XML數據是嵌套的樹形結構,而關系資料庫是簡單、平面的二維表結構,結構的差異性,使得在存儲XML數據時需要按一定的映射規則進行轉換,並使能夠恢復到原XML文件。

XML文件物理結構上由多種元素組成,本文的研究只考慮常用的ELEMENT、TEXT、ATTRIBUTE三種元素,採用三個表來保存XML數據。主要思想是把樹結構中的中間節點(非屬性和文本節點)放入mNode(Middle Node)表,葉子節點(屬性和文本節點)放入eNode(End Node)表,另外一個是ePath表,用於保存從根節點到葉子節點的路徑。當然保存多個XML時,我們會引入一個用於保存區分各個XML的表。詳細說明如下:

1) Path(pathID, path)

該表主要保存從根結點到各個葉子結點的所有不同的路徑,在查詢時可滿足類似於Xpat的查詢。

pathID:各不同的路徑標識符,在解析過程中產生。

path:實際路徑名稱。

2)mNode(nodeID, nodeName, parentID, order, pathID)

該表主要通過指定parentID來保存各節點間的父子關系,以保持原XML的樹型結構。

nodeID:節點的唯一標識符,在解析過程中產生。

nodeName:節點的名稱,即XML中的實際名稱。

parentID:父節點的標識符,根節點置為-1。

order:兄弟節點的先後次序。

pathID:從根結點到本節點所走的路徑。

3)eNode(nodeName, nodeValue, parentID, order, type)

該表主要保存屬性及文本節點的值。

nodeName:屬性名,如果是文本節點則取其父節點名。

nodeValue:屬性文本值。

parentID:父節點的標識符。

order:兄弟節點的先後次序。

type:用於區分屬性還是文本的標量。

4轉換方法

從XML到SQL,一般都是採用遞歸演算法,先根遍歷XML樹結構,而從SQL返回到XML時,一般採用隊列生成XML節點。遞歸過程一般要消耗較多的時間和空間,在處理較大結構的XML時,性能上不是很理想。

本模型在XML和SQL中放入一個中間層,該層中主要有根據DTD或Schema生成的一系列Bean、一個操作SQL的模塊、一個操作XML的模塊,另外在此基礎上還可以方便擴展給其他業務邏輯層調用的模塊。結構如下圖所示:

JavaBeans:這里所說的JavaBeans是根據XML 對應的DTD或Schema所產生的有級聯關系的類。通過這些類邏輯上形成一棵XML樹形結構,用於存放實際XML數據。對於如下的一部分DTD:

<! ELEMENT book (title, price, author+)>
<! ATTLIST book year CDATA>
<! ELEMENT title (#PCDATA)>
<! ELEMENT price (#PCDATA)>

我們可以設計一個BookItem類,它包括一個TitleTxt欄位、一個PriceTxt欄位、一個AuthorBean欄位以及一個YearAttr欄位,其中AuthorBean由多個AuthorItem組成,類似的,AuthorItem包含它下面的節點信息。在這個過程中,可以完成ePath表的信息建立。

根據前面的映射模型,對於BookItem類的title欄位,設計如下形式的類結構:

Public Class BookItem(){
Private String titleTxt;
Public setTitleTxt(String title){}
Public getTitleTxt(){}
Public setTitleParentID(int parentID){}
Public getTitleParentID(){}
Public setTitleOrder(){int order}
Public getTitleOrder(){}

}

而對於AuthorBean類,類結構設計如下:

Public Class AuthorBean(){
Private Vector beanVector;
Public void add(AuthorItem authorItem){}
Public AuthorItem getByIndex(int index){}
Public int getSize(){}

}

從結構上容易看出,代碼量非常大,但由於都是一些get()和set()方法,這些代碼不用通過手工去撰寫,而是根據DTD或Scheme的信息自動生成。在過程①及過程④中調用set()方法,在過程②及過程③中調用get()方法。

XML Operator:該模塊可以支持DOM、SAX解析。根據層次信息依次解析每個節點,此過程中記錄父子節點關系,並且記錄一個節點中所有子節點的先後順序,並設定到Bean中。

SQL Operator:該模塊主要是把Bean中的信息寫入資料庫,以及從資料庫中讀取信息供重組XML。

樓主,希望我的給出信息和資料對你的問題的解決 有所幫助!:-)