專利名稱:數(shù)據(jù)操作管理裝置和數(shù)據(jù)操作管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)操作管理裝置和一種數(shù)據(jù)操作管理方法。
背景技術(shù):
在軟件信息系統(tǒng)特別是ERP系統(tǒng)中,數(shù)據(jù)都是存儲(chǔ)在數(shù)據(jù)庫(kù)中。早期的軟件開發(fā)都是直接編寫SQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,后期發(fā)展為面向?qū)ο蟮木幊?,所有?duì)數(shù)據(jù)的操作都是先操作對(duì)象,然后再根據(jù)對(duì)象進(jìn)行數(shù)據(jù)庫(kù)操作,這樣就出現(xiàn)了根據(jù)對(duì)象生成SQL的技術(shù)?,F(xiàn)有技術(shù),一種情況,SQL語句的生成方法是由具有一定撰寫經(jīng)驗(yàn)的開發(fā)人員根據(jù)數(shù)據(jù)庫(kù)實(shí)體,使用代碼構(gòu)建數(shù)據(jù)庫(kù)內(nèi)各表的關(guān)系,進(jìn)行SQL語句的編寫。這種人工編寫SQL 語句的方法,對(duì)開發(fā)人員要求比較高,而且效率過低,不適于規(guī)模開發(fā)。另一種情況,將數(shù)據(jù)庫(kù)實(shí)體表信息記錄在數(shù)據(jù)字典,作為SQL語句生成的基礎(chǔ),根據(jù)SQL生成規(guī)則,生成SQL語句。這樣的確可以方便的生成SQL語句,但是一個(gè)對(duì)象操作對(duì)應(yīng)一條SQL語句。在實(shí)際軟件開發(fā)中,最終完成的是具體的某個(gè)業(yè)務(wù),而完成一個(gè)業(yè)務(wù)則可能需要操作多個(gè)對(duì)象,這些對(duì)象又可能是不同類型的對(duì)象。而基于現(xiàn)有技術(shù),每個(gè)對(duì)象操作最終都會(huì)生成并執(zhí)行一個(gè)SQL,一個(gè)業(yè)務(wù)操作可能需要生成上萬條SQL語句,還可能需要多次的數(shù)據(jù)庫(kù)連接,這樣無疑增加數(shù)據(jù)庫(kù)負(fù)擔(dān),既浪費(fèi)寶貴的數(shù)據(jù)庫(kù)資源,也影響程序的執(zhí)行效率, 出現(xiàn)超時(shí),甚至可能造成系統(tǒng)崩潰。因此,需要一種新的技術(shù)方案,能夠快速高效地對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,節(jié)省用戶的時(shí)間,且不需要用戶進(jìn)行復(fù)雜的腳本編寫,同時(shí)也不會(huì)對(duì)數(shù)據(jù)庫(kù)增加負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種新的技術(shù)方案,能夠快速高效地對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,節(jié)省用戶的時(shí)間,且不需要用戶進(jìn)行復(fù)雜的腳本編寫,同時(shí)也不會(huì)對(duì)數(shù)據(jù)庫(kù)增加負(fù)擔(dān)。有鑒于此,本發(fā)明提供一種數(shù)據(jù)操作管理裝置,包括映射關(guān)系管理模塊,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中所述業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;業(yè)務(wù)操作片段管理模塊,設(shè)置業(yè)務(wù)操作片段,其中,所述業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作;對(duì)象變更管理模塊,在所述業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操作的業(yè)務(wù)對(duì)象的操作狀態(tài);數(shù)據(jù)庫(kù)表處理模塊,在所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及所述映射關(guān)系,對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,可集中記錄業(yè)務(wù)對(duì)象的操作狀態(tài),自動(dòng)生成數(shù)據(jù)庫(kù)查詢語句,并實(shí)現(xiàn)執(zhí)行數(shù)據(jù)庫(kù)查詢語句的操作后延,使得在執(zhí)行一次數(shù)據(jù)庫(kù)連接后,即可完成對(duì)業(yè)務(wù)對(duì)象所對(duì)應(yīng)的數(shù)據(jù)表的操作,同時(shí)可以從業(yè)務(wù)層面管理數(shù)據(jù)庫(kù)表的操作,符合具體業(yè)務(wù)的需求。在上述技術(shù)方案中,優(yōu)選地,所述業(yè)務(wù)對(duì)象與所述數(shù)據(jù)庫(kù)表之間的映射關(guān)系包括 所述業(yè)務(wù)對(duì)象自身與所述數(shù)據(jù)庫(kù)表自身的映射關(guān)系,所述業(yè)務(wù)對(duì)象的屬性與所述數(shù)據(jù)庫(kù)表的字段之間的映射關(guān)系,所述業(yè)務(wù)對(duì)象的對(duì)象關(guān)系與所述數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)表關(guān)系之間的映射關(guān)系。通過該技術(shù)方案,保證通過映射關(guān)系可以找到業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,映射關(guān)系還可以進(jìn)一步擴(kuò)展,添加一些如描述信息等類型的內(nèi)容。在上述技術(shù)方案中,優(yōu)選地,所述對(duì)象變更管理模塊還按所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)所述所有業(yè)務(wù)對(duì)象進(jìn)行分組;所述數(shù)據(jù)庫(kù)表處理模塊根據(jù)所述映射關(guān)系,為每組業(yè)務(wù)對(duì)象生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢語句,并提交到所述數(shù)據(jù)庫(kù)中執(zhí)行,以對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,將對(duì)多個(gè)業(yè)務(wù)對(duì)象的對(duì)應(yīng)的數(shù)據(jù)庫(kù)表操作,集中到盡可能少的數(shù)據(jù)庫(kù)語句來完成,能夠大幅提升數(shù)據(jù)庫(kù)表操作的效率。在上述技術(shù)方案中,優(yōu)選地,所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系包括所述所有業(yè)務(wù)對(duì)象的操作狀態(tài)、類型和/或?qū)ο箨P(guān)系,所述數(shù)據(jù)庫(kù)表處理模塊根據(jù)所述映射關(guān)系,對(duì)于同一組中作為主對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的標(biāo)識(shí)及所述映射關(guān)系,生成一條刪除語句,對(duì)于同一組中作為子對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的主對(duì)象的標(biāo)識(shí),生成一條刪除語句,對(duì)于增加到同一組中的所有對(duì)象,按上限長(zhǎng)度生成插入語句,對(duì)于同一組中被更新的所有對(duì)象,檢測(cè)被更新對(duì)象的更新內(nèi)容是否均相同,并在所述更新內(nèi)容均相同時(shí),生成一條更新語句,將生成的所有語句提交到所述數(shù)據(jù)庫(kù)中執(zhí)行。通過該技術(shù)方案,詳細(xì)說明了如何生成數(shù)據(jù)庫(kù)查詢語句,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,還可以通過其他方式生成語句,并不限于上述幾種。在上述技術(shù)方案中,優(yōu)選地,還包括數(shù)據(jù)共享模塊,在對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行查詢時(shí),根據(jù)所述被查詢數(shù)據(jù)庫(kù)表對(duì)應(yīng)的業(yè)務(wù)對(duì)象的內(nèi)容,返回查詢結(jié)果。通過該技術(shù)方案,保證了用戶查詢的內(nèi)容與數(shù)據(jù)變化情況一致,保證查詢內(nèi)容的準(zhǔn)確性。本發(fā)明還提供一種數(shù)據(jù)操作管理方法,包括步驟202,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中所述業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;步驟204,設(shè)置業(yè)務(wù)操作片段,其中,所述業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作;步驟206,在所述業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操作的業(yè)務(wù)對(duì)象的操作狀態(tài);步驟208,在所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及所述映射關(guān)系,對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,可集中記錄業(yè)務(wù)對(duì)象的操作狀態(tài),自動(dòng)生成數(shù)據(jù)庫(kù)查詢語句,并實(shí)現(xiàn)執(zhí)行數(shù)據(jù)庫(kù)查詢語句的操作后延,使得在執(zhí)行一次數(shù)據(jù)庫(kù)連接后,即可完成對(duì)業(yè)務(wù)對(duì)象所對(duì)應(yīng)的數(shù)據(jù)表的操作,同時(shí)可以從業(yè)務(wù)層面管理數(shù)據(jù)庫(kù)表的操作,符合具體業(yè)務(wù)的需求。在上述技術(shù)方案中,優(yōu)選地,所述業(yè)務(wù)對(duì)象與所述數(shù)據(jù)庫(kù)表之間的映射關(guān)系包括 所述業(yè)務(wù)對(duì)象自身與所述數(shù)據(jù)庫(kù)表自身的映射關(guān)系,所述業(yè)務(wù)對(duì)象的屬性與所述數(shù)據(jù)庫(kù)表的字段之間的映射關(guān)系,所述業(yè)務(wù)對(duì)象的對(duì)象關(guān)系與所述數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)表關(guān)系之間的映射關(guān)系。通過該技術(shù)方案,保證通過映射關(guān)系可以找到業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,映射關(guān)系還可以進(jìn)一步擴(kuò)展,添加一些如描述信息等類型的內(nèi)容。在上述技術(shù)方案中,優(yōu)選地,按所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)所述所有業(yè)務(wù)對(duì)象進(jìn)行分組;所述步驟208具體包括根據(jù)所述映射關(guān)系,為每組業(yè)務(wù)對(duì)象生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢語句,并提交到所述數(shù)據(jù)庫(kù)中執(zhí)行,以對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,將對(duì)多個(gè)業(yè)務(wù)對(duì)象的對(duì)應(yīng)的數(shù)據(jù)庫(kù)表操作,集中到盡可能少的數(shù)據(jù)庫(kù)語句來完成,能夠大幅提升數(shù)據(jù)庫(kù)表操作的效率。在上述技術(shù)方案中,優(yōu)選地,所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系包括所述所有業(yè)務(wù)對(duì)象的操作狀態(tài)、類型和/或?qū)ο箨P(guān)系,所述步驟208具體包括根據(jù)所述映射關(guān)系,對(duì)于同一組中作為主對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的標(biāo)識(shí)及所述映射關(guān)系,生成一條刪除語句,對(duì)于同一組中作為子對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的主對(duì)象的標(biāo)識(shí),生成一條刪除語句,對(duì)于增加到同一組中的所有對(duì)象,按上限長(zhǎng)度生成插入語句,對(duì)于同一組中被更新的所有對(duì)象,檢測(cè)被更新對(duì)象的更新內(nèi)容是否均相同,并在所述更新內(nèi)容均相同時(shí),生成一條更新語句,將生成的所有語句提交到所述數(shù)據(jù)庫(kù)中執(zhí)行。通過該技術(shù)方案,詳細(xì)說明了如何生成數(shù)據(jù)庫(kù)查詢語句,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,還可以通過其他方式生成語句,并不限于上述幾種。在上述技術(shù)方案中,優(yōu)選地,還包括在對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行查詢時(shí),根據(jù)所述被查詢數(shù)據(jù)庫(kù)表對(duì)應(yīng)的業(yè)務(wù)對(duì)象的內(nèi)容,返回查詢結(jié)果。通過該技術(shù)方案, 保證了用戶查詢的內(nèi)容與數(shù)據(jù)變化情況一致,保證查詢內(nèi)容的準(zhǔn)確性。通過以上技術(shù)方案,可以實(shí)現(xiàn)一種數(shù)據(jù)庫(kù)操作管理裝置和一種數(shù)據(jù)庫(kù)操作管理方法,能以一種智能的方式根據(jù)對(duì)象生成SQL,從而實(shí)現(xiàn)盡可能減少數(shù)據(jù)庫(kù)連接及執(zhí)行SQL的數(shù)量,達(dá)到優(yōu)化系統(tǒng)、提高效率的成果。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)庫(kù)操作管理裝置的框圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)庫(kù)操作管理方法的流程圖;圖3是現(xiàn)有數(shù)據(jù)庫(kù)表操作的技術(shù)方案的原理示意圖;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)庫(kù)操作管理裝置的原理示意圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)庫(kù)操作管理裝置的工作示意圖;圖6是數(shù)據(jù)對(duì)象的模型示意圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明并不限于下面公開的具體實(shí)施例的限制。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)庫(kù)操作管理裝置的框圖。如圖1所示,本發(fā)明提供一種數(shù)據(jù)操作管理裝置100,包括映射關(guān)系管理模塊 102,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中所述業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;業(yè)務(wù)操作片段管理模塊104,設(shè)置業(yè)務(wù)操作片段,其中,所述業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作; 對(duì)象變更管理模塊106,在所述業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操
6作的業(yè)務(wù)對(duì)象的操作狀態(tài);數(shù)據(jù)庫(kù)表處理模塊108,在所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及所述映射關(guān)系,對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,可集中記錄業(yè)務(wù)對(duì)象的操作狀態(tài),自動(dòng)生成數(shù)據(jù)庫(kù)查詢語句,并實(shí)現(xiàn)執(zhí)行數(shù)據(jù)庫(kù)查詢語句的操作后延,使得在執(zhí)行一次數(shù)據(jù)庫(kù)連接后,即可完成對(duì)業(yè)務(wù)對(duì)象所對(duì)應(yīng)數(shù)據(jù)表的操作,同時(shí)可以從業(yè)務(wù)層面管理數(shù)據(jù)庫(kù)表的操作,符合具體業(yè)務(wù)的需求。在上述技術(shù)方案中,所述業(yè)務(wù)對(duì)象與所述數(shù)據(jù)庫(kù)表之間的映射關(guān)系包括所述業(yè)務(wù)對(duì)象自身與所述數(shù)據(jù)庫(kù)表自身的映射關(guān)系,所述業(yè)務(wù)對(duì)象的屬性與所述數(shù)據(jù)庫(kù)表的字段之間的映射關(guān)系,所述業(yè)務(wù)對(duì)象的對(duì)象關(guān)系與所述數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)表關(guān)系之間的映射關(guān)系。通過該技術(shù)方案,保證通過映射關(guān)系可以找到業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,映射關(guān)系還可以進(jìn)一步擴(kuò)展,添加一些如描述信息等類型的內(nèi)容。在上述技術(shù)方案中,優(yōu)選地,所述對(duì)象變更管理模塊106還按所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)所述所有業(yè)務(wù)對(duì)象進(jìn)行分組;所述數(shù)據(jù)庫(kù)表處理模塊108根據(jù)所述映射關(guān)系,為每組業(yè)務(wù)對(duì)象生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢語句,并提交到所述數(shù)據(jù)庫(kù)中執(zhí)行,以對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,將對(duì)多個(gè)業(yè)務(wù)對(duì)象的對(duì)應(yīng)的數(shù)據(jù)庫(kù)表操作,集中到盡可能少的數(shù)據(jù)庫(kù)語句來完成,能夠大幅提升數(shù)據(jù)庫(kù)表操作的效率。在上述技術(shù)方案中,優(yōu)選地,所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系包括所述所有業(yè)務(wù)對(duì)象的操作狀態(tài)、類型和/或?qū)ο箨P(guān)系,所述數(shù)據(jù)庫(kù)表處理模塊108根據(jù)所述映射關(guān)系, 對(duì)于同一組中作為主對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的標(biāo)識(shí)及所述映射關(guān)系,生成一條刪除語句,對(duì)于同一組中作為子對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的主對(duì)象的標(biāo)識(shí),生成一條刪除語句,對(duì)于增加到同一組中的所有對(duì)象,按上限長(zhǎng)度生成插入語句, 對(duì)于同一組中被更新的所有對(duì)象,檢測(cè)被更新對(duì)象的更新內(nèi)容是否均相同,并在所述更新內(nèi)容均相同時(shí),生成一條更新語句,將生成的所有語句提交到所述數(shù)據(jù)庫(kù)中執(zhí)行。通過該技術(shù)方案,詳細(xì)說明了如何生成數(shù)據(jù)庫(kù)查詢語句,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,還可以通過其他方式生成語句,并不限于上述幾種。在上述技術(shù)方案中,還包括數(shù)據(jù)共享模塊110,在對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行查詢時(shí),根據(jù)所述被查詢數(shù)據(jù)庫(kù)表對(duì)應(yīng)的業(yè)務(wù)對(duì)象的內(nèi)容,返回查詢結(jié)果。通過該技術(shù)方案,保證了用戶查詢的內(nèi)容與數(shù)據(jù)變化情況一致,保證查詢內(nèi)容的準(zhǔn)確性。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)庫(kù)操作管理方法的流程圖。如圖2所示,本發(fā)明還提供一種數(shù)據(jù)操作管理方法,包括步驟202,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中所述業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;步驟204,設(shè)置業(yè)務(wù)操作片段, 其中,所述業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作;步驟206,在所述業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操作的業(yè)務(wù)對(duì)象的操作狀態(tài);步驟208,在所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及所述映射關(guān)系,對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,可集中記錄業(yè)務(wù)對(duì)象的操作狀態(tài),自動(dòng)生成數(shù)據(jù)庫(kù)查詢語句,并實(shí)現(xiàn)執(zhí)行數(shù)據(jù)庫(kù)查詢語句的操作后延,使得在執(zhí)行一次數(shù)據(jù)庫(kù)連接后,即可完成對(duì)業(yè)務(wù)對(duì)象所對(duì)應(yīng)的數(shù)據(jù)表的操作,同時(shí)可以從業(yè)務(wù)層面管理數(shù)據(jù)庫(kù)表的操作,符合具體業(yè)務(wù)的需求。
在上述技術(shù)方案中,所述業(yè)務(wù)對(duì)象與所述數(shù)據(jù)庫(kù)表之間的映射關(guān)系包括所述業(yè)務(wù)對(duì)象自身與所述數(shù)據(jù)庫(kù)表自身的映射關(guān)系,所述業(yè)務(wù)對(duì)象的屬性與所述數(shù)據(jù)庫(kù)表的字段之間的映射關(guān)系,所述業(yè)務(wù)對(duì)象的對(duì)象關(guān)系與所述數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)表關(guān)系之間的映射關(guān)系。通過該技術(shù)方案,保證通過映射關(guān)系可以找到業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,映射關(guān)系還可以進(jìn)一步擴(kuò)展,添加一些如描述信息等類型的內(nèi)容。在上述技術(shù)方案中,優(yōu)選地,按所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)所述所有業(yè)務(wù)對(duì)象進(jìn)行分組;所述步驟208具體包括根據(jù)所述映射關(guān)系,為每組業(yè)務(wù)對(duì)象生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢語句,并提交到所述數(shù)據(jù)庫(kù)中執(zhí)行,以對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過該技術(shù)方案,將對(duì)多個(gè)業(yè)務(wù)對(duì)象的對(duì)應(yīng)的數(shù)據(jù)庫(kù)表操作,集中到盡可能少的數(shù)據(jù)庫(kù)語句來完成,能夠大幅提升數(shù)據(jù)庫(kù)表操作的效率。在上述技術(shù)方案中,優(yōu)選地,所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系包括所述所有業(yè)務(wù)對(duì)象的操作狀態(tài)、類型和/或?qū)ο箨P(guān)系,所述步驟208具體包括根據(jù)所述映射關(guān)系,對(duì)于同一組中作為主對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的標(biāo)識(shí)及所述映射關(guān)系,生成一條刪除語句,對(duì)于同一組中作為子對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的主對(duì)象的標(biāo)識(shí),生成一條刪除語句,對(duì)于增加到同一組中的所有對(duì)象,按上限長(zhǎng)度生成插入語句,對(duì)于同一組中被更新的所有對(duì)象,檢測(cè)被更新對(duì)象的更新內(nèi)容是否均相同,并在所述更新內(nèi)容均相同時(shí),生成一條更新語句,將生成的所有語句提交到所述數(shù)據(jù)庫(kù)中執(zhí)行。通過該技術(shù)方案,詳細(xì)說明了如何生成數(shù)據(jù)庫(kù)查詢語句,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,還可以通過其他方式生成語句,并不限于上述幾種。在上述技術(shù)方案中,還包括在對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行查詢時(shí),根據(jù)所述被查詢數(shù)據(jù)庫(kù)表對(duì)應(yīng)的業(yè)務(wù)對(duì)象的內(nèi)容,返回查詢結(jié)果。通過該技術(shù)方案,保證了用戶查詢的內(nèi)容與數(shù)據(jù)變化情況一致,保證查詢內(nèi)容的準(zhǔn)確性。以下對(duì)本發(fā)明技術(shù)方案的原理進(jìn)行解釋。現(xiàn)有技術(shù)中,一種情況,SQL語句的生成方法是由具有一定撰寫經(jīng)驗(yàn)的開發(fā)人員根據(jù)數(shù)據(jù)庫(kù)實(shí)體,使用代碼構(gòu)建數(shù)據(jù)庫(kù)內(nèi)各表的關(guān)系,進(jìn)行SQL語句的編寫。這種人工編寫 SQL語句的方法,對(duì)開發(fā)人員要求比較高,效率低,不適于規(guī)模開發(fā)。另一種情況,將數(shù)據(jù)庫(kù)實(shí)體表信息記錄在數(shù)據(jù)字典,作為SQL語句生成的基礎(chǔ),根據(jù)SQL生成規(guī)則,生成SQL語句?,F(xiàn)有技術(shù)有一共同特點(diǎn)一個(gè)對(duì)象就生成一條SQL語句,然后連接數(shù)據(jù)庫(kù)執(zhí)行。如果是處理多個(gè)對(duì)象,現(xiàn)有方法很有局限性。具體原理如圖3所示。為了優(yōu)化現(xiàn)有技術(shù),本發(fā)明的實(shí)施例中,公開了一套如何根據(jù)對(duì)象智能生成SQL 的機(jī)制,以及如何保證以智能方式生成SQL的原理。具體實(shí)現(xiàn)原理如圖4所示通過變更集管理器402(對(duì)應(yīng)前述的對(duì)象變更管理模塊)來集中生成SQL,然后連接到數(shù)據(jù)庫(kù)進(jìn)行處理, 能夠大幅提升數(shù)據(jù)庫(kù)表的操作效率。以下根據(jù)圖5來說明本發(fā)明實(shí)施例的具體內(nèi)容。一、提供元數(shù)據(jù)管理器502 (對(duì)應(yīng)前述的映射關(guān)系管理模塊)來管理對(duì)象和數(shù)據(jù)庫(kù)之間的映射。要實(shí)現(xiàn)對(duì)象自動(dòng)生成SQL來進(jìn)行增刪查改操作,必須先建立對(duì)象(屬性)和數(shù)據(jù)庫(kù)表(字段)之間的映射關(guān)系、對(duì)象之間關(guān)系和數(shù)據(jù)庫(kù)表間關(guān)系的映射,這兩種映射關(guān)系都通過元數(shù)據(jù)來實(shí)現(xiàn)。由此可以保證任何一個(gè)對(duì)象(屬性)只要需要最終存儲(chǔ)在數(shù)據(jù)庫(kù)中,就可以通過元數(shù)據(jù)找到對(duì)應(yīng)的表(字段)。任何一個(gè)被操作的對(duì)象,都可以通過元數(shù)據(jù)找到需要操作的相關(guān)對(duì)象,進(jìn)而也就找到了需要操作的數(shù)據(jù)表。關(guān)于如何通過元數(shù)據(jù)管理這些映射,下文以表格的方式從對(duì)象、屬性、對(duì)象間關(guān)系三方面詳細(xì)描述如何具體定義元數(shù)據(jù)。具體參見以下各表表1,對(duì)象與表之間映射
權(quán)利要求
1.一種數(shù)據(jù)操作管理裝置,其特征在于,包括映射關(guān)系管理模塊,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中所述業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;業(yè)務(wù)操作片段管理模塊,設(shè)置業(yè)務(wù)操作片段,其中,所述業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作;對(duì)象變更管理模塊,在所述業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操作的業(yè)務(wù)對(duì)象的操作狀態(tài);數(shù)據(jù)庫(kù)表處理模塊,在所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及所述映射關(guān)系,對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)操作管理裝置,其特征在于,所述業(yè)務(wù)對(duì)象與所述數(shù)據(jù)庫(kù)表之間的映射關(guān)系包括所述業(yè)務(wù)對(duì)象自身與所述數(shù)據(jù)庫(kù)表自身的映射關(guān)系,所述業(yè)務(wù)對(duì)象的屬性與所述數(shù)據(jù)庫(kù)表的字段之間的映射關(guān)系,所述業(yè)務(wù)對(duì)象的對(duì)象關(guān)系與所述數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)表關(guān)系之間的映射關(guān)系。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)操作管理裝置,其特征在于,所述對(duì)象變更管理模塊還按所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)所述所有業(yè)務(wù)對(duì)象進(jìn)行分組;所述數(shù)據(jù)庫(kù)表處理模塊根據(jù)所述映射關(guān)系,為每組業(yè)務(wù)對(duì)象生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢語句,并提交到所述數(shù)據(jù)庫(kù)中執(zhí)行,以對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)操作管理裝置,其特征在于,所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系包括所述所有業(yè)務(wù)對(duì)象的操作狀態(tài)、類型和/或?qū)ο箨P(guān)系,所述數(shù)據(jù)庫(kù)表處理模塊根據(jù)所述映射關(guān)系,對(duì)于同一組中作為主對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的標(biāo)識(shí)及所述映射關(guān)系,生成一條刪除語句,對(duì)于同一組中作為子對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的主對(duì)象的標(biāo)識(shí),生成一條刪除語句,對(duì)于增加到同一組中的所有對(duì)象,按上限長(zhǎng)度生成插入語句,對(duì)于同一組中被更新的所有對(duì)象,檢測(cè)被更新對(duì)象的更新內(nèi)容是否均相同,并在所述更新內(nèi)容均相同時(shí),生成一條更新語句,將生成的所有語句提交到所述數(shù)據(jù)庫(kù)中執(zhí)行。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的數(shù)據(jù)操作管理裝置,其特征在于,還包括數(shù)據(jù)共享模塊,在對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行查詢時(shí),根據(jù)所述被查詢數(shù)據(jù)庫(kù)表對(duì)應(yīng)的業(yè)務(wù)對(duì)象的內(nèi)容,返回查詢結(jié)果。
6.一種數(shù)據(jù)操作管理方法,其特征在于,包括步驟202,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中所述業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;步驟204,設(shè)置業(yè)務(wù)操作片段,其中,所述業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作;步驟206,在所述業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操作的業(yè)務(wù)對(duì)象的操作狀態(tài);步驟208,在所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)所述業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及所述映射關(guān)系,對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)操作管理方法,其特征在于,所述業(yè)務(wù)對(duì)象與所述數(shù)據(jù)庫(kù)表之間的映射關(guān)系包括所述業(yè)務(wù)對(duì)象自身與所述數(shù)據(jù)庫(kù)表自身的映射關(guān)系,所述業(yè)務(wù)對(duì)象的屬性與所述數(shù)據(jù)庫(kù)表的字段之間的映射關(guān)系,所述業(yè)務(wù)對(duì)象的對(duì)象關(guān)系與所述數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)表關(guān)系之間的映射關(guān)系。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)操作管理方法,其特征在于,所述步驟206還包括按所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)所述所有業(yè)務(wù)對(duì)象進(jìn)行分組;所述步驟208具體包括根據(jù)所述映射關(guān)系,為每組業(yè)務(wù)對(duì)象生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢語句,并提交到所述數(shù)據(jù)庫(kù)中執(zhí)行,以對(duì)所述數(shù)據(jù)庫(kù)中所述所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)操作管理方法,其特征在于,所述所有業(yè)務(wù)對(duì)象之間的關(guān)聯(lián)關(guān)系包括所述所有業(yè)務(wù)對(duì)象的操作狀態(tài)、類型和/或?qū)ο箨P(guān)系,所述步驟208具體包括根據(jù)所述映射關(guān)系,對(duì)于同一組中作為主對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的標(biāo)識(shí)及所述映射關(guān)系,生成一條刪除語句,對(duì)于同一組中作為子對(duì)象被刪除的所有對(duì)象,按照被刪除對(duì)象的主對(duì)象的標(biāo)識(shí),生成一條刪除語句,對(duì)于增加到同一組中的所有對(duì)象,按上限長(zhǎng)度生成插入語句,對(duì)于同一組中被更新的所有對(duì)象,檢測(cè)被更新對(duì)象的更新內(nèi)容是否均相同,并在所述更新內(nèi)容均相同時(shí),生成一條更新語句,將生成的所有語句提交到所述數(shù)據(jù)庫(kù)中執(zhí)行。
10.根據(jù)權(quán)利要求6至9中任一項(xiàng)所述的數(shù)據(jù)操作管理方法,其特征在于,還包括在對(duì)所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表的數(shù)據(jù)進(jìn)行查詢時(shí),根據(jù)所述被查詢數(shù)據(jù)庫(kù)表對(duì)應(yīng)的業(yè)務(wù)對(duì)象的內(nèi)容,返回查詢結(jié)果。
全文摘要
本發(fā)明提供一種數(shù)據(jù)操作管理裝置和一種數(shù)據(jù)操作管理方法,其中,數(shù)據(jù)操作管理裝置包括映射關(guān)系管理模塊,獲取業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中業(yè)務(wù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的映射關(guān)系;業(yè)務(wù)操作片段管理模塊,設(shè)置業(yè)務(wù)操作片段,業(yè)務(wù)操作片段包括一個(gè)或多個(gè)業(yè)務(wù)操作;對(duì)象變更管理模塊,在業(yè)務(wù)操作片段中的任一業(yè)務(wù)對(duì)象進(jìn)行業(yè)務(wù)操作時(shí),記錄被操作的業(yè)務(wù)對(duì)象的操作狀態(tài);數(shù)據(jù)庫(kù)表處理模塊,在業(yè)務(wù)操作片段中的所有業(yè)務(wù)操作都完成時(shí),根據(jù)業(yè)務(wù)操作片段中的所有業(yè)務(wù)對(duì)象的操作狀態(tài)以及映射關(guān)系,對(duì)數(shù)據(jù)庫(kù)中所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的所有數(shù)據(jù)庫(kù)表進(jìn)行處理。通過本發(fā)明,可集中記錄業(yè)務(wù)對(duì)象的操作狀態(tài),執(zhí)行一次數(shù)據(jù)庫(kù)連接后,即可完成對(duì)業(yè)務(wù)對(duì)象所對(duì)應(yīng)的數(shù)據(jù)表的操作。
文檔編號(hào)G06F17/30GK102426582SQ201110294339
公開日2012年4月25日 申請(qǐng)日期2011年9月29日 優(yōu)先權(quán)日2011年9月29日
發(fā)明者梁喜濤, 顏刊 申請(qǐng)人:用友軟件股份有限公司