專利名稱:基于配置文件的通用數(shù)據(jù)庫表網(wǎng)頁展示方法
技術領域:
本發(fā)明涉及種網(wǎng)頁圖表展示技術領域,特別是涉及一種基于配置文件的通用數(shù)據(jù)庫表網(wǎng)頁展示方法。
背景技術:
在J2EE體系結(jié)構(gòu)中,軟件開發(fā)被分層處理。流行的B/S軟件開發(fā)模式一般分為客戶端,服務器和數(shù)據(jù)庫三層??蛻舳司褪怯脩舻臑g覽器,軟件通過后臺把數(shù)據(jù)庫表中的數(shù)據(jù)查詢出來,用瀏覽器把數(shù)據(jù)用表格形式展示給用戶。這樣在網(wǎng)頁上就要先定義好與數(shù)據(jù)庫表中列名相對應的表頭,然后再用一個循環(huán)把從數(shù)據(jù)庫中取出的數(shù)據(jù)list按照對應的顯示列顯示到表格中。但是這樣有幾方面的問題。一是每個網(wǎng)頁只能展示一個對應的數(shù)據(jù)庫表,如果系統(tǒng)中有大量的數(shù)據(jù)庫表,則要為每個表的展示寫一個網(wǎng)頁,而這些網(wǎng)頁除了表頭和數(shù)據(jù)不相同,其它部分完全相同。這樣就會產(chǎn)生大量的冗余代碼,加大工作量。二是如果一個數(shù)據(jù)庫表的列很多,那么網(wǎng)頁上對列的讀取也要手工一項一項找對應的列名讀出數(shù)據(jù),工作量大,也容易出錯。三是,一旦數(shù)據(jù)庫表有修改,那么在網(wǎng)頁中從表頭到數(shù)據(jù)讀取部分都要重新修改,可維護性較差。
發(fā)明內(nèi)容
發(fā)明目的:為了解決上述問題,本發(fā)明提供了一種基于配置文件的通用數(shù)據(jù)庫表網(wǎng)頁展示方法。技術方案:一種基于配置文件的通用數(shù)據(jù)庫表網(wǎng)頁展示方法,包括如下步驟:首先系統(tǒng)為每個數(shù)據(jù)庫表建立一個配置文件,配置文件以數(shù)據(jù)庫表名命名,文檔中包含表頭名)和其對應的數(shù)據(jù)庫列名,且表頭名和列名一一對應放到一個結(jié)點下。當頁面顯示數(shù)據(jù)庫表時,先讀取讀表的配置文件生成表頭列表,再利用表頭名和列名對應的關系將查詢的數(shù)據(jù)排列成與表頭對應的列表,頁面讀取時,先解析表頭列表生成表頭,再解析數(shù)據(jù)列表生成數(shù)據(jù)行。本發(fā)明采用上述技術方案,具有以下有益效果:本發(fā)明建立一個通用數(shù)據(jù)庫表網(wǎng)頁展示方法,可以在同一個頁面中顯示不同的數(shù)據(jù)庫表,避免了大量的冗余代碼;在大型數(shù)據(jù)庫維護系統(tǒng)中,可以大大提高系統(tǒng)開發(fā)效率和改善系統(tǒng)的可維護性,具有實用價值。
圖1為本發(fā)明實施例的配置文件示意 圖2為本發(fā)明實施例總體流程 圖3為本發(fā)明實施例配置文件預處理流程 圖4為本發(fā)明實施例的后臺表頭讀取流程 圖5為本發(fā)明實施例的后臺數(shù)據(jù)處理流程 圖6為本發(fā)明實施例的前臺網(wǎng)頁表頭解析流程圖;圖7為本發(fā)明實施例的前臺網(wǎng)頁數(shù)據(jù)解析流程圖。
具體實施例方式下面結(jié)合具體實施例,進一步闡明本發(fā)明,應理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領域技術人員對本發(fā)明的各種等價形式的修改均落于本申請所附權利要求所限定的范圍。本實施例中,為了實現(xiàn)頁面表頭列與顯示的數(shù)據(jù)列相對應,系統(tǒng)為每個數(shù)據(jù)庫表建立一個配置文件,即xml文檔,配置文件以數(shù)據(jù)庫表名命名,文檔中包含數(shù)據(jù)庫表中每個列的中文名(對應網(wǎng)頁中顯示的表頭名)和其對應的數(shù)據(jù)庫列名(對應數(shù)據(jù)庫中每列的英文名),且中文名和英文名--對應放到一個結(jié)點下。頁面顯示數(shù)據(jù)庫表時,先讀取讀表的配置文件生成表頭列表,再利用中文名和英文名對應的關系將查詢的數(shù)據(jù)排列成與表頭列對應的列表,頁面讀取時,先解析表頭列表生成表頭,再解析數(shù)據(jù)列表生成數(shù)據(jù)行。這樣就可以在同一個頁面中顯示不同的數(shù)據(jù)庫表,避免了大量的冗余代碼。本方法運用于Hibernate做數(shù)據(jù)持久化和前臺頁面用jstl取數(shù)據(jù)的系統(tǒng)中。數(shù)據(jù)庫表用Hiberate所向工程生成pojo類,因此對于數(shù)據(jù)庫表中的每一列,如XXX, PO jo中會自動生成它的get方法,其形式應為getXxxO。當要顯示一個數(shù)據(jù)庫表中的內(nèi)容到網(wǎng)頁中時:
首先從根據(jù)查詢語句從數(shù)據(jù)庫中查詢出要顯示的數(shù)據(jù)集list ;
其次是表頭和中間數(shù)據(jù)處理列表生成過程,其流程如圖2所示。讀取這個表對應的配置文件,配置文件的格式如圖1所示,將配置文件中每個結(jié)點下的中文名(name)按順序放到一個List里(取名metaData),將同時將其對應的英文名(code)用一個函數(shù)處理成getXxxO ,放到另一個List中(取名getters),這樣metaData中的表頭里的列中文名稱和getters中的取該列數(shù)據(jù)的get方法順序就--對應。然后是數(shù)據(jù)列表生成過程,其流程如圖3所示。用一個循環(huán),把list中每一行的數(shù)據(jù)以getters中的get方法順序取出每一列,并組織成一個字符串,每一列以“=”相隔(數(shù)據(jù)中不會出現(xiàn)“ = ”),把這些字符串加到一個List中(取名gettersContents)。這樣gettersContents中的每個成員中的數(shù)據(jù)順序就與表頭名稱相對應。至此,數(shù)據(jù)的預處理工作結(jié)束,下面是網(wǎng)頁顯示方法實現(xiàn)過程。前臺頁面顯示主要用以上處理后的metaData列表來顯示表頭,用gettersContents列表來顯示數(shù)據(jù)。首先是解析metaData列表生成頁面表格的表頭部分,其流程如圖4所示。用一個循環(huán),取出metaData中的元素順序添加到表格第一行的每一列中;
然后是解析getterContents列表生成頁面的數(shù)據(jù)行,其流程如圖5所示。用一個循環(huán),取出gettersContents中的元素。gettersContents的每一個元素對應表格的每一行。對于取出的元素,用split(“ = ”)方法將后臺組織好的大字符串分割成一個數(shù)組,這樣數(shù)組中的每個元素對應表格這一行的每一列。把數(shù)組中的數(shù)據(jù)順序取出,添加到表格當前行的每一列中。由于后臺已經(jīng)把表頭和數(shù)據(jù)列處理成順序一致,所以頁面顯中表頭與數(shù)據(jù)列就
--對應。
權利要求
1.基于配置文件的通用數(shù)據(jù)庫表網(wǎng)頁展示方法,包括后臺數(shù)據(jù)預處理和前臺網(wǎng)頁顯示,其特征在于,其中: 后臺數(shù)據(jù)預處理方法是,首先為每個數(shù)據(jù)庫表建立一個配置文件,配置文件以數(shù)據(jù)庫表名命名,所述配置文件中包含表頭名和其對應的數(shù)據(jù)庫列名,并且表頭名和列名一一對應放到一個結(jié)點下;其次,當前臺顯示數(shù)據(jù)庫表時,先讀取數(shù)據(jù)庫表的配置文件生成表頭列表,再利用表頭名和列名對應的關系將查詢的數(shù)據(jù)排列成與表頭對應的列表; 前臺網(wǎng)頁顯示方法是,當讀取頁面時,先解析表頭列表生成表頭,再解析數(shù)據(jù)列表生成數(shù)據(jù)行。
全文摘要
本發(fā)明公開了一種基于配置文件的通用數(shù)據(jù)庫表網(wǎng)頁展示方法,包括如下步驟首先為每個數(shù)據(jù)庫表建立一個配置文件,配置文件以數(shù)據(jù)庫表名命名,所述配置文件中包含表頭名和其對應的數(shù)據(jù)庫列名,并且表頭名和列名一一對應放到一個結(jié)點下;其次,當前臺顯示數(shù)據(jù)庫表時,先讀取數(shù)據(jù)庫表的配置文件生成表頭列表,再利用表頭名和列名對應的關系將查詢的數(shù)據(jù)排列成與表頭對應的列表;當讀取頁面時,先解析表頭列表生成表頭,再解析數(shù)據(jù)列表生成數(shù)據(jù)行。本發(fā)明建立一個通用數(shù)據(jù)庫表網(wǎng)頁展示方法,可以在同一個頁面中顯示不同的數(shù)據(jù)庫表,避免了大量的冗余代碼,可提高系統(tǒng)開發(fā)效率和改善系統(tǒng)的可維護性,具有實用價值。
文檔編號G06F17/30GK103150391SQ20131009277
公開日2013年6月12日 申請日期2013年3月21日 優(yōu)先權日2013年3月21日
發(fā)明者許峰, 周文歡, 戚榮志, 余群 申請人:河海大學