欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于評估數(shù)據(jù)庫改造效果的全自動比對方法、設(shè)備及介質(zhì)與流程

文檔序號:40521694發(fā)布日期:2024-12-31 13:31閱讀:14來源:國知局
用于評估數(shù)據(jù)庫改造效果的全自動比對方法、設(shè)備及介質(zhì)與流程

本發(fā)明涉及數(shù)據(jù)庫改造,尤其是涉及一種用于評估數(shù)據(jù)庫改造效果的全自動比對方法、設(shè)備及介質(zhì)。


背景技術(shù):

1、隨著銀行數(shù)字化轉(zhuǎn)型、信創(chuàng)改造的不斷深入,數(shù)據(jù)庫國產(chǎn)化改造已經(jīng)成為銀行系統(tǒng)開發(fā)的關(guān)鍵步驟之一。在銀行數(shù)字化轉(zhuǎn)型的過程中,數(shù)據(jù)庫作為銀行的核心數(shù)據(jù)存儲和處理系統(tǒng),需要具備高效、安全、可靠的數(shù)據(jù)存儲和管理能力,以滿足銀行不斷變化的業(yè)務(wù)需求和用戶需求。

2、對于數(shù)據(jù)庫的改造主要包括兩個方面,一是將原有系統(tǒng)的數(shù)據(jù)庫改為國產(chǎn)化數(shù)據(jù)庫,二是將程序中的sql語句改造為國產(chǎn)化數(shù)據(jù)庫可執(zhí)行的語句,遵循相關(guān)語法規(guī)范對原有語句進(jìn)行優(yōu)化。改造后的數(shù)據(jù)庫及sql,需要保持與原有系統(tǒng)的內(nèi)容一致性,保證業(yè)務(wù)的正常有序進(jìn)行,并在此基礎(chǔ)上提升系統(tǒng)的有效性,增加業(yè)務(wù)功能的流暢性,使客戶的使用體驗(yàn)更為友好便捷。改造效果的驗(yàn)證,是數(shù)據(jù)庫改造中很重要的一個環(huán)節(jié),能夠檢驗(yàn)開發(fā)人員近期的工作成果,保障改造工作的準(zhǔn)確有序進(jìn)行。

3、如何有效準(zhǔn)確地對改造效果進(jìn)行驗(yàn)證是亟需解決的一個問題。對于改造效果的檢驗(yàn)包含兩方面,一是改造后的sql返回結(jié)果,二是改造后的sql執(zhí)行耗時(shí)?,F(xiàn)有的工具postman依賴于人工編寫sql、發(fā)送請求,耗時(shí)耗力,無法充分滿足項(xiàng)目組對于數(shù)據(jù)庫效果比對的要求。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供了一種自動化程度高、準(zhǔn)確性高的用于評估數(shù)據(jù)庫改造效果的全自動比對方法、設(shè)備及介質(zhì)。

2、本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):

3、根據(jù)本發(fā)明的第一方面,提供了一種用于評估數(shù)據(jù)庫改造效果的全自動比對方法,用于對第一數(shù)據(jù)庫改造為第二數(shù)據(jù)庫的改造效果進(jìn)行評估,該方法包括:

4、s1、掃描第一數(shù)據(jù)庫和第二數(shù)據(jù)庫對應(yīng)的mapper文件,根據(jù)設(shè)定解析規(guī)則,生成可執(zhí)行的sql語句;

5、s2、從第一數(shù)據(jù)庫和第二數(shù)據(jù)庫掃描獲取表結(jié)構(gòu)和表內(nèi)容,根據(jù)表結(jié)構(gòu)和內(nèi)容對可執(zhí)行的sql語句的對應(yīng)內(nèi)容進(jìn)行替換;

6、s3、將替換內(nèi)容后的可執(zhí)行的sql語句封裝,通過執(zhí)行接口發(fā)送請求并返回執(zhí)行結(jié)果,對執(zhí)行結(jié)果進(jìn)行比對。

7、優(yōu)選地,所述s1中,掃描第一數(shù)據(jù)庫和第二數(shù)據(jù)庫對應(yīng)的mapper文件,根據(jù)設(shè)定解析規(guī)則,生成可執(zhí)行的sql語句,具體包括:

8、通過elementtree庫掃描第一數(shù)據(jù)庫和第二數(shù)據(jù)庫對應(yīng)的mapper文件中的設(shè)定標(biāo)簽對,找到對應(yīng)的mapper語句,去除標(biāo)簽對,將匹配到的“#{字段}”替換為“1”,生成可執(zhí)行的sql語句。

9、優(yōu)選地,所述設(shè)定標(biāo)簽對包括<select></select>、<update></update>、<insert></insert>、以及<delete></delete>。

10、優(yōu)選地,所述s1中還包括,掃描第一數(shù)據(jù)庫和第二數(shù)據(jù)庫對應(yīng)的mapper文件中的特殊標(biāo)簽,根據(jù)設(shè)定解析規(guī)則,生成可執(zhí)行的sql語句,具體為:

11、對于<insert>標(biāo)簽的主鍵屬性“keyproperty”及“usegeneratedkeys”,若滿足“usegeneratedkeys”主鍵屬性值為true,且sql語句中沒有“keyproperty”屬性值作為字段,則將對應(yīng)的字段加上字段前綴添加至可執(zhí)行sql語句中,在相應(yīng)位置加上字段值“1”;

12、對于<if></if>標(biāo)簽對,去掉整個if條件,將對應(yīng)字段及字段值“1”添加至可執(zhí)行sql語句中;

13、對于<where></where>標(biāo)簽對,將“where”添加至<where>原有位置,然后去掉原有標(biāo)簽對;

14、update語句中更新多個字段時(shí),若set部分末尾以逗號結(jié)束,則去掉該逗號;

15、對于<set></set>標(biāo)簽對,替換為set;

16、對于<!--注釋內(nèi)容-->標(biāo)簽,刪除處理。

17、優(yōu)選地,所述s2中,根據(jù)表結(jié)構(gòu)和內(nèi)容對可執(zhí)行的sql語句的對應(yīng)內(nèi)容進(jìn)行替換,具體為:

18、對第一數(shù)據(jù)庫和第二數(shù)據(jù)庫的表結(jié)構(gòu)進(jìn)行比對,對數(shù)據(jù)庫各個表中字段名和字段屬性進(jìn)行一致性核查,并記錄不一致信息于結(jié)果記錄中;

19、掃描可執(zhí)行的sql語句,在結(jié)果記錄中查詢可執(zhí)行的sql語句涉及到的表名,將字段進(jìn)行對比匹配,將可執(zhí)行的sql語句中“1”替換成結(jié)果記錄中字段內(nèi)容,去除可執(zhí)行的sql語句中結(jié)果記錄未有的字段。

20、優(yōu)選地,所述對第一數(shù)據(jù)庫和第二數(shù)據(jù)庫的表結(jié)構(gòu)進(jìn)行比對,對數(shù)據(jù)庫各個表中字段名和字段屬性進(jìn)行一致性核查,并記錄不一致信息于結(jié)果記錄中,具體為:

21、1)連接第一數(shù)據(jù)庫和第二數(shù)據(jù)庫,獲取所有表名,循環(huán)掃描第二數(shù)據(jù)庫中表名;

22、2)判斷第二數(shù)據(jù)庫中表名是否與第一數(shù)據(jù)庫中表名匹配,如匹配則轉(zhuǎn)3),否則認(rèn)定“表名不一致或不存在”并記錄于結(jié)果記錄中;

23、3)獲取第一數(shù)據(jù)庫和第二數(shù)據(jù)庫中表的字段信息,循環(huán)掃描第二數(shù)據(jù)庫中表中的字段;

24、4)判斷第二數(shù)據(jù)庫中表中字段是否與第一數(shù)據(jù)庫中表中字段匹配,如匹配則轉(zhuǎn)5),否則認(rèn)定“字段名不一致或不存在”并記錄于結(jié)果記錄中;

25、5)獲取字段屬性;

26、6)判斷第二數(shù)據(jù)庫中表中字段屬性是否與第一數(shù)據(jù)庫中表中字段屬性匹配,如匹配轉(zhuǎn)3)循環(huán),否則認(rèn)定“字段屬性不一致”并記錄于結(jié)果記錄中。

27、優(yōu)選地,所述s3中,將替換內(nèi)容后的可執(zhí)行的sql語句封裝,通過requests庫模擬真實(shí)環(huán)境向執(zhí)行接口發(fā)送sql請求,并返回執(zhí)行耗時(shí)和執(zhí)行結(jié)果;

28、其中,所述sql請求對應(yīng)的接口參數(shù)包括執(zhí)行數(shù)據(jù)庫類型、執(zhí)行操作及可執(zhí)行的sql語句,對應(yīng)的返回結(jié)果包括sql的執(zhí)行時(shí)間及執(zhí)行結(jié)果。

29、優(yōu)選地,所述將替換內(nèi)容后的可執(zhí)行的sql語句封裝,包括:

30、對于insert語句,首先生成delete報(bào)文,每次發(fā)送insert請求報(bào)文前,先發(fā)送一次delete請求報(bào)文;

31、對于包含insert的sql語句,根據(jù)表名、第一個字段及字段值,生成一個delete類型的sql語句,拼裝成對應(yīng)的delete報(bào)文。

32、根據(jù)本發(fā)明的第二方面,提供了一種電子設(shè)備,包括存儲器和處理器,所述存儲器上存儲有計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)任一項(xiàng)所述的方法。

33、根據(jù)本發(fā)明的第三方面,提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)任一項(xiàng)所述的方法。

34、與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:

35、1)本發(fā)明整個生成sql及報(bào)文比對的過程實(shí)現(xiàn)全自動化,實(shí)現(xiàn)了數(shù)據(jù)庫改造前后對比,減少了大量人力成本,增加了比對過程的高效性、準(zhǔn)確性;開發(fā)人員可以很直觀便捷地判斷出數(shù)據(jù)庫改造前后的效果一致性,同時(shí)很方便地發(fā)現(xiàn)數(shù)據(jù)庫改造過程中的問題,降低數(shù)據(jù)庫改造中可能存在的風(fēng)險(xiǎn),保障改造效果的準(zhǔn)確性。

36、2)本發(fā)明通過elementtree庫掃描數(shù)據(jù)庫對應(yīng)的mapper文件,可以更加快速、準(zhǔn)確解析出標(biāo)簽對信息。

37、3)本發(fā)明通過對<insert>標(biāo)簽的主鍵屬性“keyproperty”及“usegeneratedkeys”進(jìn)行解析處理,在“usegeneratedkeys”為true且sql語句中沒有“keyproperty”屬性值作為字段時(shí),將對應(yīng)字段加上字段前綴添加至可執(zhí)行sql語句中,解決<insert>標(biāo)簽自帶主鍵,導(dǎo)致sql字段缺失的問題。

38、4)對第一數(shù)據(jù)庫和第二數(shù)據(jù)庫的表結(jié)構(gòu)進(jìn)行比對,對數(shù)據(jù)庫各個表中字段名和字段屬性進(jìn)行一致性核查,并記錄不一致信息于結(jié)果記錄中,可用于后續(xù)sql語句內(nèi)容替換的準(zhǔn)確性。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
陇西县| 呼伦贝尔市| 邯郸县| 河东区| 阳山县| 碌曲县| 内江市| 丽水市| 湘阴县| 晋城| 广州市| 景洪市| 丹凤县| 米易县| 大竹县| 柳林县| 鄂温| 炎陵县| 和田市| 苍南县| 宁津县| 泸州市| 璧山县| 岚皋县| 宁晋县| 祁阳县| 钟祥市| 宜城市| 靖西县| 和静县| 红安县| 芷江| 安龙县| 霍林郭勒市| 峨眉山市| 梨树县| 卓资县| 灌云县| 叶城县| 兖州市| 新余市|