摘 要: 在面向數據庫的應用系統開發中,數據庫模型的改動會引起業務層、數據庫層大量修改。減少因數據庫模型改動帶來的修改工作量,是軟件開發領域急需解決的重要問題。本文通過對iBATIS和數據字典的研究,提出在數據庫系統開發過程中建立雙重持久層,即在數據持久層的基礎上,建立數據字典持久層,同時建立關于數據字典的業務層,通過對數據字典的維護,實現對數據庫模型和數據持久層的維護。
關鍵詞: iBATIS 數據字典 數據持久層 雙重持久層
1.引言
針對如何在數據庫模型變動時,減少持久層框架修改工作量的問題,通過對iBATIS和數據字典技術的研究,我們發現在持久層框架開發過程中,融入數據字典技術,可以有效地減少數據庫模型變動帶來的改動量。
2.iBATIS數據持久層
iBATIS是一個持久層框架。在持久層內又可細分為抽象層、持久化框架和驅動程序或接口層,通過上述三層結構來實現數據持久化。持久層框架中的SQLMaps使用XML配置文件將Java Bean映射成SQL語句,允許開發人員在不使用JDBC API,以及不耦合Java代碼與SQL語句的情況下實現Java對象和DBMS的訪問操作。
3.數據字典設計
數據字典是關于數據庫中數據的數據庫,在數據庫中承擔著管理數據資源、數據標準化,以及數據庫模型維護等功能。一個完整的數據字典通常應包括數據表字典、屬性字段字典、表格字段字典、索引信息字典、約束字典,以及方法字典(面向數據表和面向數據項),等等,在數據庫管理維護中扮演著不同角色。
在數據庫建模完成后,需要建立數據字典用于描述數據庫模型、控制字段輸入與輸出、用戶需要進行的查詢檢索等。
4.集合iBATIS、數據字典的數據持久層設計
通過對iBATIS實現數據持久層技術和數據庫中基本數據字典作用分析,不難發現這兩項技術各有其技術優勢。
4.1iBATIS在數據庫模型相對穩定的情況下較好地分離了業務層和數據庫層。
4.2數據字典描述和記錄了數據庫模型,通過建立數據字典的業務層,可以方便地實現數據庫模型的維護。
結合兩項技術的優點,我們可以在數據字典層次上架設數據字典的持久層,即增加數據字典持久層,形成雙重體系的數據持久層。在數據持久層上依然采用iBATIS持久層框架,實現對數據庫中數據的訪問控制;在數據庫的數據字典層上架設一個數據字典持久層,并開發一個數據庫管理的業務邏輯層,實現數據庫模型的修改和維護工作。
在數據字典持久層中根據不同數據字典配置不同的XML文件,來實現對數據字典的訪問與操作。當數據庫模型變動時,需要對數據庫中相應表或者字段進行更改,同時在數據持久層中根據SQLMaps與XML文件的對應關系,找到對應的XML文件進行更改,保證數據持久層與數據庫層的一致性。以數據表字段字典為例,配置GeoTableField.XML文件。
在iBATIS持久層框架中SQLMaps對應的XML文件主要由兩部分構成,即數據映射和數據訪問對象。對于數據字典而言,表格字段字典對應數據映射,而查詢檢索字典對應數據訪問中的查詢功能。通過建立數據表與數據持久層中的XML文件對應關系,可以實現數據表的修改工作。
當數據庫模型中需要對指定表刪除一個字段時,首先應刪除表格字段字典中的一行記錄,然后刪除數據庫中指定表的字段,接著在數據持久層中找到該數據表對應的XML文件,對相應字段進行修改。保證數據持久層與數據庫層的一致性。
在針對數據庫管理人員開發的業務層中可以實現數據庫維護的基本功能,如對字段的增加、刪除等操作。我們在“數字礦山數據管理系統”中采用雙重持久層的分層策略,建立了數據表字典(GeoTables)、屬性字段字典(GeoFields)、表格字段字典(Table_Field)和查詢檢索方法字典(GeoSelect),采用iBATIS建立數據字典持久層,并開發了數據庫管理維護系統。通過對數據字典的維護,實現對數據庫和數據持久層的維護工作。如圖1所示,數據庫管理人員可以定制用戶對數據表中字段的可見性。
5.結語
我們可通過在數據字典上建立數據字典持久層和數據庫管理維護業務層,用于維護數據庫模型和數據持久層,減少因數據庫模型修改帶來的持久層修改工作量。該方法建立的數據字典持久層,面對數據庫管理員,由數據庫管理員操控數據庫維護業務層實現數據庫模型的修改,使業務層的開發最大限度地脫離數據庫的束縛,同時也使數據庫管理人員減少對持久性框架維護的工作量。實踐表明,雙重持久層可以實現當數據庫模型變動時,對數據庫和數據持久層的同步維護。同時,對數據字典建立的持久層和開發的數據庫管理邏輯層具有一定的通用性,方便移植到其他的數據庫管理系統中。
參考文獻:
[1]Clinton Begin,Brandon Goodin,Larry Meadors著.葉俊等譯.iBATIS實戰[M].北京:人民郵電出版社,2008.
[2]汪新慶,劉剛,袁艷斌,韓志軍.地質礦產術語分類代碼在地礦點源信息系統中的應用[J].地球科學,1999,24,(5):529-532.
[3]韓志軍,汪新慶,吳沖龍.數據庫系統數據字典的設計與實現[J].微機發展,1999,VOL2:30-32.
[4]封小鈺,王飛.基于iBATIS數據庫訪問技術的研究與應用[J].電腦開發與應用,2008,21,(6):51-53.