一種基于Web的數(shù)據(jù)庫虛擬存儲處理方法
【技術領域】
[0001] 本發(fā)明設及一種基于Web的數(shù)據(jù)庫虛擬存儲處理方法,屬于數(shù)據(jù)庫技術領域。
【背景技術】
[0002] 隨著互聯(lián)網(wǎng)的迅猛發(fā)展,萬維網(wǎng)也隨之迅速發(fā)展起來,多變的用戶需求與數(shù)據(jù)類 型將嚴重制約Web項目開發(fā)的進度,固定的數(shù)據(jù)庫難W滿足多變的用戶需求。因此項目中 往往需要在運行時動態(tài)的創(chuàng)建表W及動態(tài)的維護表的字段甚至表與表之間的關系,而在網(wǎng) 頁上動態(tài)創(chuàng)建及管理數(shù)據(jù)庫關系表能夠提高Web站點的性能,加強用戶與后臺W及數(shù)據(jù)庫 的交互。
[0003] 目前的化va Web技術,基于化va面向?qū)ο蟮木幊趟枷?,開發(fā)中會為數(shù)據(jù)庫中每一 張關系表建立一個對應的化vaBean對象,同時使用ORM的bject Relation Ma卵ing,對象關 系映射)框架技術,使該個對象與關系表之間形成映射關系,該樣,每個對象的一個實例實 際上就代表其對應關系表的一條記錄,后臺就是通過對該些實例的操作來實現(xiàn)對關系表中 的數(shù)據(jù)進行操作。
[0004] 然而對現(xiàn)有技術而言,雖然在Web工程中可W使用JDBC (Java化ta Base Connectivity, java數(shù)據(jù)庫連接)、Hibernate等技術在數(shù)據(jù)庫中生成關系表,但是關系表 對應的化vaBean對象是無法通過程序編碼自動生成的,關系表對應的化vaBean對象通常 是在項目開發(fā)階段人為的編寫或者使用開發(fā)工具人為逆向生成的。由于無法建立關系表對 應的化vaBean對象,因此后臺無法獲得新建關系表所對應的實例對象,繼而不能對新建關 系表W及關系表中的記錄進行簡單的增、刪、改、查操作,必須通過寫sql語句來對關系表 進行操作。該就要求用戶精通sql語句知識,顯然不能滿足大多數(shù)用戶的需求。
【發(fā)明內(nèi)容】
[0005] 為了解決現(xiàn)有技術的不足,本發(fā)明提供了一種基于Web的數(shù)據(jù)庫虛擬存儲處理方 法,能夠使用戶通過網(wǎng)頁虛擬的管理數(shù)據(jù)庫關系表W及關系表中記錄,很大程度上提高了 用戶與數(shù)據(jù)庫交互的靈活性,有效改善Web站點的性能,極具現(xiàn)實意義與實用價值。
[0006] 本發(fā)明為解決其技術問題所采用的技術方案是;提供了一種基于Web的數(shù)據(jù)庫虛 擬存儲處理方法,用于對虛擬關系表進行處理,所述虛擬關系表即用戶希望創(chuàng)建的關系表, 具體包括W下步驟:
[0007] (1)建立數(shù)據(jù)庫,數(shù)據(jù)庫中包括主表和從表兩張表;
[000引所述主表的字段包括表名、字段名、起始字段序號和終止字段序號;其中表名用于 存儲虛擬關系表的名稱,表名為主表的主鍵,字段名用于存儲虛擬關系表所有字段的名稱, 不同字段之間用分隔符隔開,起始字段序號用于標注字段名中第一個字段的序數(shù),終止字 段序號用于標注字段名中最后一個字段的序數(shù);
[0009] 所述從表的字段包括序號、表名W及1個W上字段,其中序號為從表的主鍵,表名 為關聯(lián)從表和主表的外鍵,1個W上字段用于存儲虛擬關系表的記錄;
[0010] 似使用Web技術創(chuàng)建、部署Web工程,連接數(shù)據(jù)庫,實現(xiàn)Web工程中對Web站點的 訪問;
[0011] 做在瀏覽器的網(wǎng)頁上進行虛擬關系表的"新增"、"刪除"、"修改"或"查詢",其中,
[0012] 虛擬關系表新增;在瀏覽器預設的頁面提交虛擬關系表新增請求,虛擬關系表新 增請求包括待新增的虛擬關系表的表名和字段名,跳轉(zhuǎn)至后臺;后臺通過ht化協(xié)議獲取虛 擬關系表信息,對表名進行校驗,若虛擬關系表的名稱在主表中已存在,則提示修改表名重 新提交,若虛擬關系表的名稱在主表中不存在,則對字段名進行校驗;若字段名格式符合預 設要求,則給主表對應的實例對象賦值,使用Hibernate向主表插入虛擬關系表信息的記 錄;
[0013] 虛擬關系表刪除:在瀏覽器預設頁面提交虛擬關系表刪除請求,虛擬關系表刪除 請求包括待刪除的虛擬關系表的表名,跳轉(zhuǎn)至后臺,后臺通過http協(xié)議獲取表名,查詢主 表中是否存在相同表名的虛擬關系表,若存在則刪除從表中具有相同表名的所有記錄,然 后刪除主表中相同表名的記錄,最后返回前臺刷新瀏覽器頁面;
[0014] 虛擬關系表修改;在瀏覽器預設的頁面提交虛擬關系表修改請求,虛擬關系表修 改請求包括待修改的虛擬關系表的表名,跳轉(zhuǎn)至后臺,后臺通過ht化協(xié)議獲取待修改的 虛擬關系表表名,查詢主表中具有相同表名的記錄,將該記錄傳至前臺網(wǎng)頁進行顯示,前 臺網(wǎng)頁對該記錄進行修改后保存,跳轉(zhuǎn)至后臺校驗表名是否唯一且格式正確,若是則使用 Hibernate更新主表中該表名的記錄,若不是則返回前臺網(wǎng)頁提示用戶重新修改后保存;
[0015] 虛擬關系表查詢;在瀏覽器預設的頁面提交虛擬關系表查詢請求,虛擬關系表請 求包括查詢條件,跳轉(zhuǎn)到后臺,后臺通過http協(xié)議獲取到查詢條件,根據(jù)查詢條件生成相 應的hql語句,使用Hibernate執(zhí)行hql語句,遍歷查詢結(jié)果,把查詢結(jié)果賦值給主表對應 的實例對象,然后通過ht化協(xié)議把實例對象傳到前臺網(wǎng)頁顯示;
[0016] (4)在瀏覽器的網(wǎng)頁上進行數(shù)據(jù)庫虛擬關系表中的記錄的"新增"、"刪除"、"修改" 或"查詢",其中,
[0017] 虛擬關系表記錄新增:在瀏覽器預設的頁面提交虛擬關系表記錄新增請求,虛擬 關系表記錄新增請求包括待新增記錄的虛擬關系表的表名,跳轉(zhuǎn)到后臺,后臺通過ht化協(xié) 議獲取虛擬關系表的表名,然后查詢主表中該虛擬關系表的記錄,把查詢結(jié)果賦值給主表 對應的實例對象,把實例對象傳到前臺網(wǎng)頁,在網(wǎng)頁上拆分主表對應實例對象的字段名,W 得到虛擬關系表的除表名與序號外所有字段的名稱,根據(jù)拆分得到的字段在網(wǎng)頁上顯示用 于用戶填寫虛擬關系表記錄的虛擬關系表結(jié)構,用戶填寫新增的虛擬關系表記錄后提交, 跳轉(zhuǎn)到后臺,后臺通過ht化協(xié)議獲取到新增的記錄,并給從表對應的實例對象進行賦值, 然后使用Hibernate向從表插入記錄;
[001引虛擬關系表記錄刪除:在瀏覽器預設的頁面提交虛擬關系表記錄刪除請求,虛擬 關系表記錄刪除請求包括待刪除記錄的虛擬關系表的表名,跳轉(zhuǎn)到后臺,后臺通過ht化協(xié) 議獲取到虛擬關系表的表名,然后查詢主表和從表中具有該表名的記錄,分別給主表與從 表對應的實例對象賦值,把實例對象傳到前臺網(wǎng)頁,在網(wǎng)頁上拆分主表對應的實例對象的 字段名,W得到虛擬關系表的除表名與序號外的所有字段,根據(jù)拆分得到的字段在網(wǎng)頁上 顯示用于用戶填寫虛擬關系表記錄的虛擬關系表結(jié)構,遍歷從表實例對象,實例對象的各 個屬性一一對應地放置在虛擬關系表結(jié)構的各個字段顯示,選中待刪除的單條或多條記錄 提交確認刪除請求,跳轉(zhuǎn)到后臺,后臺通過http協(xié)議獲取到待刪除的記錄的序號,給從表 對應的實例對象進行賦值,然后使用Hibernate進行刪除,再查詢主表和從表中具有該表 名的記錄,分別給主表與從表對應的實例對象賦值,傳到前臺網(wǎng)頁,刷新頁面;
[0019] 虛擬關系表記錄修改:在瀏覽器預設的頁面提交虛擬關系表記錄修改請求,虛擬 關系表記錄修改請求包括待修改記錄的虛擬關系表的表名,跳轉(zhuǎn)到后臺,后臺通過ht化協(xié) 議獲取到虛擬關系表的表名,然后查詢主表中該虛擬關系表,同時查詢從中具有相同表名 的記錄,分別給主表與從表對應的實例對象賦值,傳到前臺網(wǎng)頁,在網(wǎng)頁上拆分主表對應實 例對象的字段名,W得到虛擬關系表的除表名與序號外的所有字段,根據(jù)拆分得到的字段 在網(wǎng)頁上顯示用于用戶填寫虛擬關系表記錄的虛擬關系表結(jié)構,遍歷從表實例對象,實例 對象的各個屬性一一對應地放置在虛擬關系表結(jié)構的各個字段顯示,分別修改各條記錄, 提交保存請求,跳轉(zhuǎn)到后臺,后臺通過ht化協(xié)議獲取到修改后的記錄,給從表對應的實例 對象進行賦值,然后使用Hibernate進行修改操作,再查詢主表和從表中具有該表名的記 錄,分別給主表與從表對應的實例對象賦值,傳到前臺網(wǎng)頁,刷新頁面;
[0020] 虛擬關系表記錄查詢:在瀏覽器預設的頁面提交虛擬關系表記錄查詢請求,虛擬 關系表記錄查詢請求包括待查詢記錄的虛擬關系表的表名,跳轉(zhuǎn)到后臺,后臺通過ht化協(xié) 議獲取虛擬關系表的表名,再查詢主表和從表中具有該表名的記錄,分別給主表與從表對 應的實例對象賦值,傳到前臺網(wǎng)頁,在網(wǎng)頁上拆分主表對應實例對象的字段名,W得到虛擬 關系表的除表名與序號外的所有字段,根據(jù)拆分得到的字段在網(wǎng)頁上顯示用于用戶填寫虛 擬關系表記錄的虛擬關系表結(jié)構,遍歷從表實例對象,實例對象的各個屬性一一對應地放 置在虛擬關系表結(jié)構的各個字段顯示。
[0021] 步驟(1)中所述的數(shù)據(jù)庫為SQL Server 2008數(shù)據(jù)庫。
[0022] 步驟(2)中,通過W下步驟部署Web工程,連接數(shù)據(jù)庫,實現(xiàn)Web工程中對Web站 點的訪問;在化va集成開發(fā)環(huán)境下創(chuàng)建Web工程,使用Tomcat作為Web服務器,用Eclipse 開發(fā)工具將Web工程打包成war包并將其部署在Web服務器上,啟動服務器,W實現(xiàn)利用瀏 覽器對已經(jīng)發(fā)布工程的訪問;利用化bernate框架技術將Web工程與數(shù)據(jù)庫進行動態(tài)鏈接。
[0023] 本發(fā)明基于其技術方案所具有的有益效果在于;本發(fā)明實際上并不是真正的在數(shù) 據(jù)庫中去新建關系表,而是通過數(shù)據(jù)庫中已經(jīng)存在的一個主表來存儲用戶希望創(chuàng)建的關系 表(稱為虛擬關系表)的基本結(jié)構信息,能夠使用戶通過網(wǎng)頁虛擬的管理數(shù)據(jù)庫關系表W 及關系表中記錄,實現(xiàn)在瀏覽器的網(wǎng)頁上進行虛擬關系表的"新增"、"刪除"、"修改"或"查 詢"操作,W及瀏覽器的網(wǎng)頁上進行數(shù)據(jù)庫虛擬關系表中的記錄