System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據庫,尤其涉及基于mybatis的數據庫腳本校驗與表索引優化方法、裝置、計算機設備及存儲介質。
技術介紹
1、為減少質量缺陷、性能問題,根據工作中對代碼的檢核和數據庫表結構的評審,編寫自動化檢測分析軟件,對項目的數據庫腳本進行檢測,發現問題腳本,同時根據當前表結構的設計與代碼調用情況,對表索引的創建進行優化。從源頭上避免無法被測試覆蓋的語法錯誤,以及在項目運行中訪問量數據量的驟增對系統性能帶來的影響。
2、基于spring項目的數據庫的腳本,大多在mybatis的xml文件中。對異常的腳本一般通過兩種方式進行排除:其一通過開發人員的識別與自測;其他通過測試人員根據測試用例進行測試。對數據庫腳本執行的性能問題,一般是通過壓力測試、指標監測、用戶使用等方式暴露。這種方式的缺陷是:雖然能發現大多數問題,但是依然有較多檢測盲區的,少數問題容易導致嚴重生產事故;還有這種方式相對被動,一般是出問題才能識別,發現的過程較多依賴人的水平和精力,不能發現腳本潛在的問題。
技術實現思路
1、本專利技術實施例的目的在于提出一種基于mybatis的數據庫腳本校驗與表索引優化方法、裝置、計算機設備及存儲介質,以對項目的數據庫腳本進行檢測,發現問題潛在腳本,同時根據當前表結構的設計與代碼調用情況,對表索引的創建進行優化;從源頭上避免無法被測試覆蓋的語法錯誤,以及在項目運行中訪問量數據量的驟增對系統性能帶來的影響。
2、為了解決上述技術問題,本專利技術提供一種基于myba
3、對基于mybatis的數據庫進行配置,數據庫配置包括表、表結構、表索引、項目代碼路徑,通過所述代碼路徑,獲取所述代碼;
4、根據所述代碼,獲取所述代碼中的xml文件,提取所述xml文件中的sql語句;
5、根據所述sql語句,獲取正則表達式,從所述正則表達式過濾出完整的select語句;
6、判斷所述select語句是否能被執行,否則斷定所述xml文件存在語法錯誤,是則獲取查詢條件,以所述查詢條件作為表索引優化的必要條件;
7、根據所述數據庫配置,讀取表、表結構、表索引信息;
8、從所述查詢條件中,對照已有的表索引,忽略白名單字段,根據不同的數據庫、表,對所述表索引進行優化。
9、優選地,所述對基于mybatis的數據庫進行配置,數據庫配置包括表、表結構、表索引、項目代碼路徑,通過所述代碼路徑,獲取所述代碼的步驟具體包括:
10、對基于mybatis的數據庫,配置表、表結構、表索引、項目代碼路徑信息,生成項目配置文件;
11、讀取項目配置文件,根據項目代碼路徑,掃描該項目代碼路徑下的所有的代碼。
12、優選地,所述根據所述代碼,獲取所述代碼中的xml文件,提取所述xml文件中的sql語句的步驟具體包括:
13、從所述代碼讀取含有“.xml”后綴的xml文件;
14、從xml文件獲取文件內容,所述文件內容包括xml標簽、注釋字符;
15、去掉xml標簽和注釋字符,得到xml文件中的sql語句。
16、優選地,所述根據所述sql語句,獲取正則表達式,從所述正則表達式過濾出完整的select語句的步驟具體包括:
17、使用java的java.util.regex包中的pattern和matcher的正則工具類,識別xml文件中指定格式的數據內容;
18、使用java.lang包中的string類的replace函數對指定格式的數據內容進行刪除或者替換,得到完整的select語句。
19、優選地,所述判斷所述select語句是否能被執行,否則斷定所述xml文件存在語法錯誤,是則獲取查詢條件,以所述查詢條件作為表索引優化的必要條件的步驟具體包括:
20、使用com.github.jsqlparser依賴包中的ccjsqlparserutil工具類解析sql;
21、用遞歸的方法,提取sql語句中的表名、字段名、查詢條件、子查詢條件。
22、優選地,所述根據所述數據庫配置,讀取表、表結構、表索引信息的步驟具體包括:
23、使用java.sql包中的類drivermanager,獲取連接connection;
24、當connection連接成功后,獲取數據庫元數據databasemetadata,元數據包含數據庫的基本信息、表結構、字段、索引信息。
25、優選地,所述從所述查詢條件中,對照已有的表索引,忽略白名單字段,根據不同的數據庫、表,對所述表索引進行優化的步驟具體包括:
26、根據xml文件中的select查詢語句,得到查詢條件中使用的字段,忽略白名單字段;
27、結合字典數據,對表索引進行優化,生成索引優化建議;
28、將索引優化建議生成文件,進行存儲。
29、為了解決上述技術問題,本專利技術還提供一種基于mybatis的數據庫腳本校驗與表索引優化裝置,采用了如下所述的技術方案,包括:
30、獲取模塊,用于對基于mybatis的數據庫進行配置,數據庫配置包括表、表結構、表索引、項目代碼路徑,通過所述代碼路徑,獲取所述代碼;
31、提取模塊,用于根據所述代碼,獲取所述代碼中的xml文件,提取所述xml文件中的sql語句;
32、過濾模塊,用于根據所述sql語句,獲取正則表達式,從所述正則表達式過濾出完整的select語句;
33、判斷模塊,用于判斷所述select語句是否能被執行,否則斷定所述xml文件存在語法錯誤,是則獲取查詢條件,以所述查詢條件作為表索引優化的必要條件;
34、讀取模塊,用于根據所述數據庫配置,讀取表、表結構、表索引信息;
35、優化模塊,用于從所述查詢條件中,對照已有的表索引,忽略白名單字段,根據不同的數據庫、表,對所述表索引進行優化。
36、為了解決上述技術問題,本專利技術還提供一種計算機設備,采用了如下所述的技術方案,包括存儲器和處理器,所述存儲器中存儲有計算機可讀指令,所述處理器執行所述計算機可讀指令時實現上述的基于mybatis的數據庫腳本校驗與表索引優化方法的步驟。
37、為了解決上述技術問題,本專利技術還提供一種計算機可讀存儲介質,采用了如下所述的技術方案,所述計算機可讀存儲介質上存儲有計算機可讀指令,所述計算機可讀指令被處理器執行時實現上述的基于mybatis的數據庫腳本校驗與表索引優化方法的步驟。
38、與現有技術相比,本專利技術主要有以下有益效果:一方面通過對數據庫腳本進行校驗識別代碼錯誤,另一方面又能分析出數據庫索引的優化方案;能在項目管理中,對質量和效率提升過程進行有效管控,將原本需要投入較多人力且效果不理想的代碼檢核工作本文檔來自技高網...
【技術保護點】
1.一種基于Mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,包括下述步驟:
2.根據權利要求1所述的基于Mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述對基于Mybatis的數據庫進行配置,數據庫配置包括表、表結構、表索引、項目代碼路徑,通過所述代碼路徑,獲取所述代碼的步驟具體包括:
3.根據權利要求1所述的基于Mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述根據所述代碼,獲取所述代碼中的xml文件,提取所述xml文件中的sql語句的步驟具體包括:
4.根據權利要求1所述的基于Mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述根據所述sql語句,獲取正則表達式,從所述正則表達式過濾出完整的select語句的步驟具體包括:
5.根據權利要求1所述的基于Mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述判斷所述select語句是否能被執行,否則斷定所述xml文件存在語法錯誤,是則獲取查詢條件,以所述查詢條件作為表索引優化的必要條件的步驟具體包括:
6.根
7.根據權利要求1至6任意一項所述的基于Mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述從所述查詢條件中,對照已有的表索引,忽略白名單字段,根據不同的數據庫、表,對所述表索引進行優化的步驟具體包括:
8.一種基于Mybatis的數據庫腳本校驗與表索引優化裝置,其特征在于,包括:
9.一種計算機設備,包括存儲器和處理器,所述存儲器中存儲有計算機可讀指令,所述處理器執行所述計算機可讀指令時實現如權利要求1至7中任一項所述的基于Mybatis的數據庫腳本校驗與表索引優化方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機可讀指令,所述計算機可讀指令被處理器執行時實現如權利要求1至7中任一項所述的基于Mybatis的數據庫腳本校驗與表索引優化方法的步驟。
...【技術特征摘要】
1.一種基于mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,包括下述步驟:
2.根據權利要求1所述的基于mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述對基于mybatis的數據庫進行配置,數據庫配置包括表、表結構、表索引、項目代碼路徑,通過所述代碼路徑,獲取所述代碼的步驟具體包括:
3.根據權利要求1所述的基于mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述根據所述代碼,獲取所述代碼中的xml文件,提取所述xml文件中的sql語句的步驟具體包括:
4.根據權利要求1所述的基于mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述根據所述sql語句,獲取正則表達式,從所述正則表達式過濾出完整的select語句的步驟具體包括:
5.根據權利要求1所述的基于mybatis的數據庫腳本校驗與表索引優化方法,其特征在于,所述判斷所述select語句是否能被執行,否則斷定所述xml文件存在語法錯誤,是則獲取查詢條件,以所述查詢條件作為表索引優化的必...
【專利技術屬性】
技術研發人員:張根,陳葦林,
申請(專利權)人:深圳聯友科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。