專利名稱:定制化數(shù)據(jù)庫查詢系統(tǒng)及查詢方法
技術領域:
本發(fā)明涉及數(shù)據(jù)庫技術領域,尤其涉及一種定制化數(shù)據(jù)庫查詢系統(tǒng)及查詢方法。
背景技術:
目前,在數(shù)據(jù)庫信息查詢系統(tǒng)開發(fā)過程中,一般對于某一項目需求,開發(fā)人員需要 獨立開發(fā)相應的界面,邏輯處理,以及與數(shù)據(jù)庫交互的SQL語句等,當用戶想對某一業(yè)務模 塊進行修改或改進,需要對整個程序進行相應的修改。 鑒于上述的分析,本發(fā)明旨在提供一種定制化數(shù)據(jù)庫查詢系統(tǒng)及查詢方法,用以
解決現(xiàn)有技術中存在的數(shù)據(jù)庫信息查詢系統(tǒng)開發(fā)復雜的問題。 本發(fā)明的目的主要是通過以下技術方案實現(xiàn)的 本發(fā)明提供了一種定制化數(shù)據(jù)庫查詢系統(tǒng),包括WEB層模塊、服務層模塊、DAO層 即數(shù)據(jù)訪問接口層模塊、實體層模塊,其中, 所述WEB層模塊,用于根據(jù)用戶的業(yè)務項目請求調用所述服務層模塊中的相應的 業(yè)務項目功能; 所述服務層模塊,用于根據(jù)所述WEB層模塊的調用指示將對應的業(yè)務項目功能分 解為多個業(yè)務操作,并分別調用所述DAO層模塊中與多個業(yè)務操作對應的DAO操作方法;
所述DAO層模塊,用于預先定義多個公用的DAO操作方法; 所述實體層模塊,用于預先創(chuàng)建查詢中間表及公共Bean類即公共事務對象類,并 根據(jù)用戶的業(yè)務項目請求和預先創(chuàng)建的查詢中間表到數(shù)據(jù)庫中進行查詢,將查詢到的業(yè)務 項目的結果放入預先創(chuàng)建的公共Bean類中。 進一步地,所述實體層模塊具體用于,根據(jù)用戶的業(yè)務項目請求查詢預先創(chuàng)建的 查詢中間表,通過查詢中間表找到該業(yè)務項目,然后到數(shù)據(jù)庫中查詢該業(yè)務項目的結果,并 將在數(shù)據(jù)庫中查詢到的該業(yè)務項目的結果放入所述實體層模塊中預先創(chuàng)建的公共Bean類 中。 其中,所述查詢中間表包括多個業(yè)務項目,每個業(yè)務項目至少包括項目名、項目 中使用到的SQL,以及項目中使用的SQL查詢條件。 本發(fā)明還提供了一種定制化數(shù)據(jù)庫查詢方法,利用一種定制化數(shù)據(jù)庫查詢系統(tǒng), 所述查詢系統(tǒng)包括WEB層模塊、服務層模塊、DAO層即數(shù)據(jù)訪問接口層模塊、實體層模塊, 則所述方法包括 步驟A:所述WEB層模塊根據(jù)用戶的業(yè)務項目請求調用所述服務層模塊中的相應 的業(yè)務項目功能; 步驟B :所述服務層模塊根據(jù)所述WEB層的調用指示將對應的業(yè)務項目功能分解 為多個業(yè)務操作,并分別調用所述DAO層模塊中與多個業(yè)務操作對應的公用DAO操作方 法;
發(fā)明內容
步驟C :所述實體層模塊根據(jù)用戶的業(yè)務請求和預先創(chuàng)建的查詢中間表到數(shù)據(jù)庫 中進行查詢,并將查詢到的業(yè)務項目的結果放入預先創(chuàng)建的公共Bean類中。
進一步地,所述步驟C具體包括 所述實體層模塊根據(jù)用戶的業(yè)務項目請求查詢預先創(chuàng)建的查詢中間表,通過查詢
中間表找到該業(yè)務項目,然后到數(shù)據(jù)庫中查詢該業(yè)務項目的結果,并將在數(shù)據(jù)庫中查詢到
的該業(yè)務項目的結果放入所述實體層模塊中預先創(chuàng)建的公共Bean類中。 其中,所述查詢中間表包括多個業(yè)務項目,每個業(yè)務項目至少包括項目名、項目
中使用到的SQL,以及項目中使用的SQL查詢條件。 本發(fā)明有益效果如下 本發(fā)明實現(xiàn)了數(shù)據(jù)庫查詢開發(fā)過程框架層與數(shù)據(jù)業(yè)務層的真正剝離,將數(shù)據(jù)業(yè)務 項目完全從程序中獨立出來,放入數(shù)據(jù)庫中間表進行管理控制,從而有效減少開發(fā)資源及 程序維護困難的問題。 本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且,部分的從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明 書、權利要求書、以及附圖中所特別指出的結構來實現(xiàn)和獲得。
圖1為本發(fā)明實施例所述數(shù)據(jù)庫查詢系統(tǒng)的結構示意圖;
圖2為本發(fā)明實施例所述數(shù)據(jù)庫查詢方法的流程示意圖。
具體實施例方式
下面結合附圖來具體描述本發(fā)明的優(yōu)選實施例,其中,附圖構成本申請一部分,并
與本發(fā)明的實施例一起用于闡釋本發(fā)明的原理。為了清楚和簡化目的,當其可能使本發(fā)明
的主題模糊不清時,將省略本文所描述的器件中已知功能和結構的詳細具體說明。 首先結合附圖1對本發(fā)明實施例所述數(shù)據(jù)庫查詢系統(tǒng)進行詳細說明。 如圖1所示,圖1為本發(fā)明實施例所述系統(tǒng)的結構示意圖,具體可以包括實體層
模塊、DAO(DataAccess Objec,數(shù)據(jù)訪問接口 )層模塊、服務層模塊、WEB層模塊;以下將對
各個功能模塊分別予以說明。 ( — )WEB層模塊,用戶操作的界面,主要你負責進行頁面控制與頁面業(yè)務數(shù)據(jù)的 顯示,當用戶需要進行某項業(yè)務操作時,WEB層模塊調用服務層模塊的相應業(yè)務項目功能。
( 二 )服務層模塊,面向功能的模塊,主要負責編寫業(yè)務項目的具體實現(xiàn)功能,比 如用戶要操作某個業(yè)務項目,當WEB層模塊將給業(yè)務項目的請求給服務層模塊后,服務層 模塊將這個業(yè)務項目功能分解成許多個業(yè)務操作(比如先刪除一條數(shù)據(jù)記錄再添加另外 一個數(shù)據(jù)記錄等),然后根據(jù)WEB層模塊的調用指示調用DAO層模塊中與這些業(yè)務操作對應 的公用DAO操作方法。(三)DAO層模塊,主要負責根據(jù)需要的各種持久化操作,定義對應的公用DAO操作 方法;所謂DAO操作方法即訪問數(shù)據(jù)庫的方法,也就是對數(shù)據(jù)庫進行修改、刪除或添加等的 實現(xiàn)細節(jié),例如修改操作時SQL語句是怎么寫的,怎么把對象放入數(shù)據(jù)庫中等;由于是自定 義的DAO操作方法,因為在后續(xù)實用以及二次開發(fā)時可以增加或刪除其中的DAO操作方法,以及對DA0操作方法匯總的SQL語句進行刪除或修改等。(四)實體層模塊,主要負責預先創(chuàng)建查詢中間表以及公共Bean(公共事務)類, 并將從數(shù)據(jù)庫中查詢到的該業(yè)務項目的結果放入公共Bean類中; 具體的說就是,實體層模塊預先創(chuàng)建有一個查詢中間表,該中間數(shù)據(jù)表用來記錄 所有的業(yè)務項目,每個業(yè)務項目包含項目名,項目中使用到的SQL,以及項目中使用的SQL 查詢條件等。當用戶進行某項業(yè)務操作時,實體層模塊根據(jù)用戶操作的業(yè)務項目對該查詢 中間表進行查詢,找到該業(yè)務項目需要的SQL語句以及該項目中使用的SQL查詢條件,對該 項目中使用的SQL查詢條件進行替換組裝后到數(shù)據(jù)庫中查詢,并將在數(shù)據(jù)庫中查詢到的業(yè) 務結果放入設計的公共Bean類中,使用前臺頁面進行數(shù)據(jù)的展示; 本發(fā)明實施例中采用Ibatis(基于Java的持久層框架)技術,實體層模塊需要編 寫Ibatis的中間數(shù)據(jù)表XML文件作為查詢中間表,以及編寫該查詢中間表對應的公共Bean 類。 下面再結合附圖2對本發(fā)明實施例所述數(shù)據(jù)庫查詢方法進行詳細說明。
本發(fā)明實施例所述數(shù)據(jù)庫查詢方法利用上述數(shù)據(jù)庫查詢系統(tǒng),實體層模塊預先創(chuàng) 建有一查詢中間表以及公共Bean類,該中間數(shù)據(jù)表用來記錄所有的業(yè)務項目,每個業(yè)務項 目包含項目名,項目中使用到的SQL,以及項目中使用的SQL查詢條件等;DAO層模塊預先有 定義多個公用的DAO操作方法。 如圖2所示,圖2為本發(fā)明實施例所述查詢方法的流程示意圖,具體可以包括如下 步驟 步驟201 :WEB層模塊根據(jù)用戶的業(yè)務項目請求調用服務層模塊中的相應的業(yè)務 項目功能; 步驟202 :服務層模塊根據(jù)WEB層模塊的調用指示將對應的業(yè)務項目功能分解為 多個業(yè)務操作,并分別調用DAO層模塊中與多個業(yè)務操作對應的公用DAO操作方法;所謂 DAO操作方法即訪問數(shù)據(jù)庫的方法,也就是對數(shù)據(jù)庫進行修改、刪除或添加等的實現(xiàn)細節(jié), 例如修改操作時SQL語句是怎么寫的,怎么把對象放入數(shù)據(jù)庫中等; 步驟203 :實體層模塊根據(jù)用戶的業(yè)務請求和預先創(chuàng)建的查詢中間表到數(shù)據(jù)庫中 進行查詢,并將查詢到的結果放入預先創(chuàng)建的公共Bean類中;具體的說就是,實體層模塊 預先創(chuàng)建有一個查詢中間表,該中間數(shù)據(jù)表用來記錄所有的業(yè)務項目,每個業(yè)務項目包含 項目名,項目中使用到的SQL,以及項目中使用的SQL查詢條件等。當用戶進行某項業(yè)務操 作時,實體層模塊根據(jù)用戶操作的業(yè)務項目對該查詢中間表進行查詢,找到該業(yè)務項目需 要的SQL語句以及該項目中使用的SQL查詢條件,對該項目中使用的SQL查詢條件進行替 換組裝后到數(shù)據(jù)庫中查詢,并將在數(shù)據(jù)庫中查詢到的業(yè)務結果放入設計的公共Bean類中, 使用前臺頁面進行數(shù)據(jù)的展示。 綜上所述,本發(fā)明實施例提供了一種定制化數(shù)據(jù)庫查詢系統(tǒng)及查詢方法,目的是 在于實現(xiàn)了數(shù)據(jù)庫查詢開發(fā)過程框架層與數(shù)據(jù)業(yè)務層的真正剝離,通過一個查詢中間表 以及公用Bean類,將數(shù)據(jù)業(yè)務項目完全從程序中獨立出來,放入數(shù)據(jù)庫中間表進行管理控 制,從而有效減少開發(fā)資源及程序維護困難的問題;通過后臺動態(tài)創(chuàng)建與維護查詢系統(tǒng)中 某一業(yè)務項目的開發(fā),并可動態(tài)進行SQL查詢語句的增加與修改,保證系統(tǒng)與數(shù)據(jù)庫交互 部分穩(wěn)定性與安全性,操作SQL查詢語句簡單方便,該系統(tǒng)運行界面統(tǒng)一,程序簡單,代碼冗余少,并在此基礎上進行二次開發(fā)簡單快速,達到提升信息查詢系統(tǒng)快速開發(fā)與穩(wěn)定性 的技術效果。 以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此, 任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換, 都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求書的保護范 圍為準。
權利要求
一種定制化數(shù)據(jù)庫查詢系統(tǒng),其特征在于,包括WEB層模塊、服務層模塊、DAO層即數(shù)據(jù)訪問接口層模塊、實體層模塊,其中,所述WEB層模塊,用于根據(jù)用戶的業(yè)務項目請求調用所述服務層模塊中的相應的業(yè)務項目功能;所述服務層模塊,用于根據(jù)所述WEB層模塊的調用指示將對應的業(yè)務項目功能分解為多個業(yè)務操作,并分別調用所述DAO層模塊中與多個業(yè)務操作對應的DAO操作方法;所述DAO層模塊,用于預先定義多個公用的DAO操作方法;所述實體層模塊,用于預先創(chuàng)建查詢中間表以及公共Bean類即公共事務對象類,并根據(jù)用戶的業(yè)務項目請求和預先創(chuàng)建的查詢中間表到數(shù)據(jù)庫中進行查詢,將查詢到的業(yè)務項目的結果放入預先創(chuàng)建的公共Bean類中。
2. 根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述實體層模塊具體用于,根據(jù)用戶的業(yè) 務項目請求查詢預先創(chuàng)建的查詢中間表,通過查詢中間表找到該業(yè)務項目,然后到數(shù)據(jù)庫 中查詢該業(yè)務項目的結果,并將在數(shù)據(jù)庫中查詢到的該業(yè)務項目的結果放入所述實體層模 塊中預先創(chuàng)建的公共Bean類中。
3. 根據(jù)權利要求1或2所述的系統(tǒng),其特征在于,所述查詢中間表包括多個業(yè)務項目, 每個業(yè)務項目至少包括項目名、項目中使用到的SQL,以及項目中使用的SQL查詢條件。
4. 一種定制化數(shù)據(jù)庫查詢方法,其特征在于,利用一種定制化數(shù)據(jù)庫查詢系統(tǒng),所述查 詢系統(tǒng)包括WEB層模塊、服務層模塊、DA0層模塊、實體層模塊,則所述方法包括步驟A :所述WEB層模塊根據(jù)用戶的業(yè)務項目請求調用所述服務層模塊中的相應的業(yè) 務項目功能;步驟B :所述服務層模塊根據(jù)所述WEB層模塊的調用指示將對應的業(yè)務項目功能分解 為多個業(yè)務操作,并分別調用所述DA0層模塊中與多個業(yè)務操作對應的公用DA0操作方 法;步驟C :所述實體層模塊根據(jù)用戶的業(yè)務請求和預先創(chuàng)建的查詢中間表到數(shù)據(jù)庫中進 行查詢,并將查詢到的業(yè)務項目的結果放入預先創(chuàng)建的公共Bean類中。
5. 根據(jù)權利要求4所述的方法,其特征在于,所述步驟C具體包括 所述實體層模塊根據(jù)用戶的業(yè)務項目請求查詢預先創(chuàng)建的查詢中間表,通過查詢中間表找到該業(yè)務項目,然后到數(shù)據(jù)庫中查詢該業(yè)務項目的結果,并將在數(shù)據(jù)庫中查詢到的該 業(yè)務項目的結果放入所述實體層模塊中預先創(chuàng)建的公共Bean類中。
6. 根據(jù)權利要求4或5所述的方法,其特征在于,所述查詢中間表包括多個業(yè)務項目, 每個業(yè)務項目至少包括項目名、項目中使用到的SQL,以及項目中使用的SQL查詢條件。
全文摘要
本發(fā)明公開了一種定制化數(shù)據(jù)庫數(shù)據(jù)查詢系統(tǒng)及查詢方法,系統(tǒng)包括WEB層模塊、服務層模塊、DAO層、實體層模塊,其中,WEB層模塊根據(jù)用戶的業(yè)務項目請求調用服務層模塊中的相應的業(yè)務項目功能;服務層模塊根據(jù)WEB層模塊的調用指示將對應的業(yè)務項目功能分解為多個業(yè)務操作,并分別調用DAO層模塊中與多個業(yè)務操作對應的DAO操作方法;實體層模塊預先創(chuàng)建查詢中間表以及公共Bean類即公共事務對象類,并根據(jù)用戶的業(yè)務項目請求和預先創(chuàng)建的查詢中間表到數(shù)據(jù)庫中進行查詢,將查詢到的業(yè)務項目的結果放入預先創(chuàng)建的公共Bean類中;本發(fā)明實現(xiàn)了數(shù)據(jù)庫查詢開發(fā)過程框架層與數(shù)據(jù)業(yè)務層的真正剝離,減少開發(fā)資源及程序維護困難問題。
文檔編號G06F17/30GK101706823SQ200910259338
公開日2010年5月12日 申請日期2009年12月18日 優(yōu)先權日2009年12月18日
發(fā)明者胡道平 申請人:中興通訊股份有限公司