佟吉富
基于NHibernate的旅游資源管理系統(tǒng)數(shù)據(jù)持久化
佟吉富
(渤海大學(xué)高等職業(yè)技術(shù)學(xué)院,遼寧錦州,121000)
我國(guó)旅游業(yè)發(fā)展迅速,對(duì)信息化的要求越來(lái)越高,針對(duì)旅游業(yè)實(shí)施信息化過(guò)程中存在的問(wèn)題,本文基于NHibernate研究旅游資源管理系統(tǒng)數(shù)據(jù)持久化。首先,進(jìn)行數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì);然后,通過(guò)圖形研究NHibernate體系結(jié)構(gòu);最后,按NHibernate的持久化步驟對(duì)旅游線(xiàn)路表進(jìn)行持久化。
旅游資源;管理系統(tǒng);NHibernate;數(shù)據(jù)持久化
旅游業(yè)這個(gè)新興產(chǎn)業(yè),是伴隨著工業(yè)化、全球化和信息化的進(jìn)程而不斷發(fā)展壯大的,既是經(jīng)濟(jì)社會(huì)發(fā)展進(jìn)步的產(chǎn)物,也是經(jīng)濟(jì)社會(huì)發(fā)展進(jìn)步的標(biāo)志。經(jīng)濟(jì)社會(huì)發(fā)展、科學(xué)技術(shù)進(jìn)步、居民實(shí)際收入增長(zhǎng)、個(gè)人可自由支配閑暇時(shí)間增多,以及人們求新、求知、求樂(lè)、求健欲望的增強(qiáng),是現(xiàn)代旅游業(yè)發(fā)展的原動(dòng)力。旅游資源是發(fā)展旅游業(yè)的基本條件之一。目前,旅游資源信息管理還存在許多問(wèn)題,主要集中在以下幾個(gè)方面:收集與管理手段落后、管理和使用不成體系、沒(méi)有反映信息的動(dòng)態(tài)性、利用手段落后。信息化發(fā)展為旅游業(yè)帶來(lái)了廣闊的發(fā)展前景,通過(guò)信息技術(shù)的應(yīng)用,建立統(tǒng)一的旅游信息數(shù)據(jù)庫(kù)和可操作的平臺(tái),統(tǒng)一服務(wù)發(fā)展思路,共建信息數(shù)據(jù)庫(kù),共享資源。數(shù)據(jù)持久化是建設(shè)旅游資源管理系統(tǒng)的重要工作,本文基于.Net的Nhibernate技術(shù)展開(kāi)研究,為旅游資源管理系統(tǒng)開(kāi)發(fā)提供技術(shù)支持。
數(shù)據(jù)庫(kù)設(shè)計(jì)(Database Design)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿(mǎn)足各種用戶(hù)的應(yīng)用需求。旅游資源管理系統(tǒng)是解決旅游公司內(nèi)部資源的一種實(shí)用軟件,具有很強(qiáng)的實(shí)用性,即可以作為單獨(dú)的系統(tǒng)使用,也可以作為旅游企業(yè)綜合業(yè)務(wù)管理系統(tǒng)的一個(gè)重要組成部分,其管理的基本思路是以地域信息為基礎(chǔ),管理旅游景點(diǎn)資源、旅游賓館資源、旅游餐廳資源、旅游娛樂(lè)資源、旅游線(xiàn)路資源等。概念結(jié)構(gòu)設(shè)計(jì)E-R模型如圖1所示(圖中省略了實(shí)體和聯(lián)系的屬性)。
根據(jù)概念結(jié)構(gòu)設(shè)計(jì)的結(jié)果進(jìn)行邏輯結(jié)構(gòu)設(shè)計(jì)。邏輯結(jié)構(gòu)設(shè)計(jì)階段的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)階段所得到的概念模型轉(zhuǎn)換為具體DBMS所能支持的數(shù)據(jù)模型(即邏輯結(jié)構(gòu)),并對(duì)其進(jìn)行優(yōu)化,受篇幅所限,本文僅圖1的中的三個(gè)實(shí)體進(jìn)行邏輯結(jié)構(gòu)設(shè)計(jì),結(jié)果如下:
(1)用戶(hù)員(管理員編號(hào),姓名,性別,民族,年齡,家庭住址,身份證號(hào),職稱(chēng),職務(wù),電話(huà),備注);
(2)旅游線(xiàn)路(線(xiàn)路編號(hào)、線(xiàn)路名稱(chēng)、所屬地域、行程天數(shù)、團(tuán)隊(duì)類(lèi)別、旅游費(fèi)用、保險(xiǎn)費(fèi)用);
(3)景點(diǎn)資源信息(景點(diǎn)編號(hào)、景點(diǎn)名稱(chēng)、聯(lián)系人、聯(lián)系電話(huà)、通訊地址、郵政編碼、成人票價(jià)、兒童票價(jià)、所在地域、錄入日期和時(shí)間)。
持久化(Persistence)是將程序數(shù)據(jù)在持久狀態(tài)和瞬時(shí)狀態(tài)間轉(zhuǎn)換的機(jī)制。主要應(yīng)用是將內(nèi)存中的對(duì)象存儲(chǔ)在關(guān)系型的數(shù)據(jù)庫(kù)中,當(dāng)然也可以存儲(chǔ)在磁盤(pán)文件中、XML數(shù)據(jù)文件中等。
Nhibernate是一個(gè)基于.Net的針對(duì)關(guān)系型數(shù)據(jù)庫(kù)的對(duì)象持久化類(lèi)庫(kù),來(lái)源于基于Java的Hibernate關(guān)系型持久化工具。Hibernate從數(shù)據(jù)庫(kù)底層來(lái)持久化.Net對(duì)象,程序員所寫(xiě)代碼僅僅和對(duì)象關(guān)聯(lián),操作數(shù)據(jù)庫(kù)的對(duì)象SQL語(yǔ)句由NHibernate自動(dòng)產(chǎn)生,并確保對(duì)象提交到正確的表和字段中去。NHibernate大量減少人工編寫(xiě)SQL和ADO.NET處理數(shù)據(jù)的時(shí)間,而是把結(jié)果集從表格的表示形式轉(zhuǎn)換到一系列對(duì)象中去。NHibernate采用XML文件配置方式,每一個(gè)實(shí)體類(lèi)對(duì)應(yīng)一個(gè)映射文件。體系結(jié)構(gòu)如圖2所示。
從圖2中可以看到,NHibernate處于數(shù)據(jù)庫(kù)和應(yīng)用程序之間,為應(yīng)用程序提供持久化對(duì)象到數(shù)據(jù)庫(kù)的服務(wù)。NHibernate通過(guò)使用數(shù)據(jù)庫(kù)和配置文件來(lái)為應(yīng)用程序提供持久化服務(wù),即它使用NHibernate.properties或XML Mapping兩種配置文件方式把普通對(duì)象映成關(guān)系數(shù)據(jù)庫(kù)中的表,從而應(yīng)用程序通過(guò)持久化的對(duì)象類(lèi)直接訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),而不是必須使用SQL和ADO.NET對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
Nhibernate持久化分為五個(gè)步驟,下面以旅游線(xiàn)路表為例,來(lái)說(shuō)明持久化方法。為了操作方便和兼容性,需要將漢字表示的邏輯設(shè)計(jì)用英文字母表示。旅游線(xiàn)路對(duì)應(yīng)的英文表示為:
TourismLine (LineNo, LineName, Area, TravelDays, TeamCategory, TravelFee, InsuranceFee)
(1)配置NHibernate。配置文件有兩種:在桌面應(yīng)用程序(WinForm)中為App.config,在網(wǎng)頁(yè)應(yīng)用程序(WebForm)中為web.config。兩種方法要添加的配置信一樣,目標(biāo)都是告訴NHbiernate使用的數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)、用戶(hù)名稱(chēng)、用戶(hù)密碼等。
(2)創(chuàng)建表。運(yùn)用CREATE TABLE語(yǔ)句。
(3)構(gòu)建被持久化的.Net類(lèi)。NHibernate通過(guò)對(duì)象屬性的反射來(lái)工作,因此需要添加持久化的對(duì)象屬性。代碼如下:
(4)構(gòu)建映射文件(Mapping File)。需要一種方式去讓NHibernate知道如何從數(shù)據(jù)表到.Net類(lèi)的關(guān)聯(lián),這種關(guān)聯(lián)依賴(lài)映射文件來(lái)完成。最易于管理的辦法是為每一個(gè)類(lèi)編寫(xiě)一個(gè)映射文件,如果命名為YourObject.hbm.xml 并且把它放在和類(lèi)的同一個(gè)目錄下,NHiberante操作將非常簡(jiǎn)單。映射文件如下:
(5)使用NHibernate的應(yīng)用程序編程接口(API,Application Programming Interface)來(lái)編程。在類(lèi)中聲明NHibernate的Factory;在系統(tǒng)初始化的時(shí)候加載XML,并創(chuàng)建Factory文件;使用HSql查詢(xún);編寫(xiě)具體的插入、修改、刪除、查詢(xún)語(yǔ)句。
[1] 宋新龍,田耀永,侯岳.旅游資源管理信息系統(tǒng)建設(shè)的技術(shù)與實(shí)現(xiàn)方法[J].測(cè)繪與空間地理信息.2013,36(5): 119-122.
[2] 肖陽(yáng).基于GIS長(zhǎng)株潭地區(qū)旅游資源信息管理系統(tǒng)的研制究[D].中南林學(xué)院碩士學(xué)位論文.2004.
[3] 崔玉連,楊新鋒.?dāng)?shù)據(jù)庫(kù)開(kāi)發(fā)框架NHibernate應(yīng)用研究[J].微型電腦應(yīng)用.2013,29(9):12-14.
Data persistence on tourism resources management system based on NHibernate
Tong Jifu
(Higher Professional Technical Institute, Bohai University,Jinzhou,121000,China)
The rapid development of China's tourism industry,the demands to information technology get higher and higher,for tourism existed problems during the implementation of information technology,this paper researches on tourism resource management system data persistence based on NHibernate.Firstly,carry out database conceptual structure design and logical structure design;then,through the graphical studied NHibernate architecture;finally,on the tourist route table for persistence in accordance with NHibernate persistence steps.
tourism resources;management system;NHibernate;data persistence
佟吉富(1961-),男,遼寧岫巖人,副教授,從事旅游資源信息管理研究.