一種java生成數(shù)據(jù)庫sequence的方法
【專利摘要】本發(fā)明涉及一種java生成數(shù)據(jù)庫sequence的方法。該方法:首先,在數(shù)據(jù)庫中構(gòu)建一用于存儲sequence信息的sequence數(shù)據(jù)表;其次,構(gòu)建一sequence工具類,作為java類訪問的基礎(chǔ)類,以利于各應(yīng)用通過sequence工具類進(jìn)行訪問,獲取sequence數(shù)據(jù)表的初始信息;最后,構(gòu)建一sequence載體類,用于存儲sequence具體信息。本發(fā)明是為了解決了應(yīng)用系統(tǒng)在采用不同數(shù)據(jù)庫時共用一種方法生成sequence,降低不同數(shù)據(jù)庫異構(gòu)帶來的編碼工作量而實現(xiàn)的。
【專利說明】
一種java生成數(shù)據(jù)庫sequence的方法
技術(shù)領(lǐng)域
[000?]本發(fā)明涉及到數(shù)據(jù)庫技術(shù)領(lǐng)域,特別涉及一種java生成數(shù)據(jù)庫sequence的方法。
【背景技術(shù)】
[0002]隨著科技進(jìn)步,軟件企業(yè)所開發(fā)的應(yīng)用信息管理系統(tǒng)要經(jīng)常適配客戶所采購的各種數(shù)據(jù)庫環(huán)境,由于各種數(shù)據(jù)庫的異構(gòu)性,帶來了應(yīng)用系統(tǒng)部署、迀移的復(fù)雜性提升。
[0003]為了降低企業(yè)特別是軟件企業(yè)的開發(fā)成本,減少二次編碼迭代的可能,加速應(yīng)用系統(tǒng)的部署、迀移等活動,特發(fā)明此方法。本發(fā)明方法可以很好的解決應(yīng)用系統(tǒng)采用不同數(shù)據(jù)庫的快速迀移,降低應(yīng)用系統(tǒng)對于數(shù)據(jù)庫的底層依賴,減少二次編碼成本。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種java生成數(shù)據(jù)庫sequence的方法,該方法解決應(yīng)用系統(tǒng)在采用不同數(shù)據(jù)庫時提供統(tǒng)一的生成sequence信息的方法。
[0005]為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種java生成數(shù)據(jù)庫sequence的方法,包括如下步驟,
步驟SOl:在數(shù)據(jù)庫中構(gòu)建一用于存儲sequence信息的sequence數(shù)據(jù)表;
步驟S02:構(gòu)建一sequence工具類,作為java類訪問的基礎(chǔ)類,以利于各應(yīng)用通過sequence工具類進(jìn)行訪問,獲取sequence數(shù)據(jù)表的初始信息;
步驟S03:構(gòu)建一 sequence載體類,用于存儲sequence具體信息。
[0006]在本發(fā)明一實施例中,所述sequence信息包括sequence的名稱、當(dāng)前值、備注、sequence的匹配模式、獲取sequence的cache值、事物控制版本信息。
[0007]在本發(fā)明一實施例中,所述步驟S02中,各應(yīng)用通過sequence工具類進(jìn)行訪問的具體過程如下:
步驟SOOl:各應(yīng)用程序的外部類通過sequence工具類暴露在外的單實例來讀取工具類,獲取sequence工具類的實例;
步驟S002: sequence工具類進(jìn)行實例化;
步驟S003: sequence工具類初始化完成sequence數(shù)據(jù)表信息的讀取,實例化到內(nèi)存中;步驟S004:判斷請求的sequence信息是否存在于內(nèi)存中;若不存在,則執(zhí)行步驟S005;若存在,則執(zhí)行步驟S006;
步驟S005:創(chuàng)建請求的sequence信息,并把該sequence信息寫入sequence數(shù)據(jù)表;
步驟S006:獲取請求的sequence的信息;
步驟S007:將請求的sequence信息的當(dāng)前值和步長值進(jìn)行比較;若當(dāng)前值大于步長值,則執(zhí)行步驟S008;否則,執(zhí)行步驟S009;
步驟S008:訪問sequence數(shù)據(jù)表,進(jìn)行重新初始該sequence信息;
步驟S009:對sequence信息的當(dāng)前值進(jìn)行累加,返回結(jié)果給其具體調(diào)用的應(yīng)用程序。
[0008]相較于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:本發(fā)明使得應(yīng)用系統(tǒng)在采用不同數(shù)據(jù)庫時可共用一種方法生成sequence,從而降低不同數(shù)據(jù)庫異構(gòu)帶來的編碼工作量。
【附圖說明】
[0009]圖1為本發(fā)明java生成數(shù)據(jù)庫sequence的方法流程圖。
[00?0]圖2為本發(fā)明java生成數(shù)據(jù)庫sequence的方法中具體內(nèi)部處理流程圖。
【具體實施方式】
[0011 ]下面結(jié)合附圖,對本發(fā)明的技術(shù)方案進(jìn)行具體說明。
[0012]本發(fā)明的一種java生成數(shù)據(jù)庫sequence的方法,包括如下步驟,
步驟SOl:在數(shù)據(jù)庫中構(gòu)建一用于存儲sequence信息的sequence數(shù)據(jù)表;
步驟S02:構(gòu)建一sequence工具類,作為java類訪問的基礎(chǔ)類,以利于各應(yīng)用通過sequence工具類進(jìn)行訪問,獲取sequence數(shù)據(jù)表的初始信息;
步驟S03:構(gòu)建一 sequence載體類,用于存儲sequence具體信息。
[0013]在本發(fā)明一實施例中,所述sequence信息包括sequence的名稱、當(dāng)前值、備注、sequence的匹配模式、獲取sequence的cache值、事物控制版本信息。
[OOM]在本發(fā)明一實施例中,所述步驟S02中,各應(yīng)用通過sequence工具類進(jìn)行訪問的具體過程如下:
步驟SOOl:各應(yīng)用程序的外部類通過sequence工具類暴露在外的單實例來讀取工具類,獲取sequence工具類的實例;
步驟S002: sequence工具類進(jìn)行實例化;
步驟S003: sequence工具類初始化完成sequence數(shù)據(jù)表信息的讀取,實例化到內(nèi)存中;步驟S004:判斷請求的sequence信息是否存在于內(nèi)存中;若不存在,則執(zhí)行步驟S005;若存在,則執(zhí)行步驟S006;
步驟S005:創(chuàng)建請求的sequence信息,并把該sequence信息寫入sequence數(shù)據(jù)表;
步驟S006:獲取請求的sequence的信息;
步驟S007:將請求的sequence信息的當(dāng)前值和步長值進(jìn)行比較;若當(dāng)前值大于步長值,則執(zhí)行步驟S008;否則,執(zhí)行步驟S009;
步驟S008:訪問sequence數(shù)據(jù)表,進(jìn)行重新初始該sequence信息;
步驟S009:對sequence信息的當(dāng)前值進(jìn)行累加,返回結(jié)果給其具體調(diào)用的應(yīng)用程序。
[0015]以下對本發(fā)明技術(shù)方案進(jìn)行具體講述。
[00? 0] 如圖1所示,一種java生成數(shù)據(jù)庫sequence的方法,包括以下步驟:
步驟SOl:提供一張數(shù)據(jù)表來存儲sequence的信息,包含sequence的名稱、當(dāng)前值、備注、sequence的匹配模式、獲取sequence的cache值、事物控制版本等信息;
步驟S02:提供一個Sequence工具類,用于提供其它應(yīng)用訪問的基礎(chǔ)類,包含一個單例方法來實現(xiàn)類的初始化,生成工具類的實例對象;
步驟S03:提供一個Sequence載體,用于記錄sequence的具體信息,包括從數(shù)據(jù)庫中初始化sequence等。
[0017]
如圖2所示,在本發(fā)明一實施例中,外部類需要先實例化工具類,獲取該工具類的單例,通過該工具類的單例來存儲訪問,獲取sequence表的初始信息。
[0018]步驟SOOl:外部類通過一定的方法讀取工具類,獲取工具類的實例。
[0019]步驟S002:工具類進(jìn)行實例化
步驟S003:工具類初始化完成sequence表信息的讀取,實例化到內(nèi)存中。
[0020]步驟S004:判斷請求的sequence是否存在于內(nèi)存中.步驟S005:如果不存在內(nèi)存中,進(jìn)行創(chuàng)建,并把該sequence寫入數(shù)據(jù)表。
[0021 ] 步驟S006:如果存在,獲取當(dāng)前sequence的信息。
[0022]步驟S007:當(dāng)前的sequence信息的當(dāng)前值和步長進(jìn)行比較。
[0023]步驟S008:如果當(dāng)前值大于步長值,那么需要從數(shù)據(jù)庫中重新檢索,獲取sequence的具體信息。
[0024]步驟S009:如果當(dāng)前值小于步長值,那么直接對值進(jìn)行累加,返回結(jié)果給調(diào)用者。
[0025]本發(fā)明的優(yōu)點在于,實現(xiàn)了不同數(shù)據(jù)庫生成sequence統(tǒng)一管理,并可以用于應(yīng)用的集群部署等。
[0026]上列較佳實施例,對本發(fā)明的目的、技術(shù)方案和優(yōu)點進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項】
1.一種java生成數(shù)據(jù)庫sequence的方法,其特征在于:包括如下步驟, 步驟SOl:在數(shù)據(jù)庫中構(gòu)建一用于存儲sequence信息的sequence數(shù)據(jù)表; 步驟SO2:構(gòu)建一sequence工具類,作為java類訪問的基礎(chǔ)類,以利于各應(yīng)用通過sequence工具類進(jìn)行訪問,獲取sequence數(shù)據(jù)表的初始信息; 步驟S03:構(gòu)建一 sequence載體類,用于存儲sequence具體信息。2.根據(jù)權(quán)利要求1所述的java生成數(shù)據(jù)庫sequence的方法,其特征在于:所述sequence信息包括sequence的名稱、當(dāng)前值、備注、sequence的匹配模式、獲取sequence的cache值、事物控制版本信息。3.根據(jù)權(quán)利要求1所述的java生成數(shù)據(jù)庫sequence的方法,其特征在于:所述步驟S02中,各應(yīng)用通過sequence工具類進(jìn)行訪問的具體過程如下: 步驟SOOl:各應(yīng)用程序的外部類通過sequence工具類暴露在外的單實例來讀取工具類,獲取sequence工具類的實例; 步驟S002: sequence工具類進(jìn)行實例化; 步驟S003: sequence工具類初始化完成sequence數(shù)據(jù)表信息的讀取,實例化到內(nèi)存中; 步驟S004:判斷請求的sequence信息是否存在于內(nèi)存中;若不存在,則執(zhí)行步驟S005 ;若存在,則執(zhí)行步驟S006; 步驟S005:創(chuàng)建請求的sequence信息,并把該sequence信息寫入sequence數(shù)據(jù)表; 步驟S006:獲取請求的sequence的信息; 步驟S007:將請求的sequence信息的當(dāng)前值和步長值進(jìn)行比較;若當(dāng)前值大于步長值,則執(zhí)行步驟S008;否則,執(zhí)行步驟S009; 步驟S008:訪問sequence數(shù)據(jù)表,進(jìn)行重新初始該sequence信息; 步驟S009:對sequence信息的當(dāng)前值進(jìn)行累加,返回結(jié)果給其具體調(diào)用的應(yīng)用程序。
【文檔編號】G06F17/30GK105824634SQ201610151654
【公開日】2016年8月3日
【申請日】2016年3月17日
【發(fā)明人】彭江明
【申請人】福建聯(lián)迪商用設(shè)備有限公司