System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 国产精品99精品无码视亚,国产午夜片无码区在线播放,亚洲中文久久精品无码
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于JavaAgent和Javassist的數據庫分表方法及系統技術方案

    技術編號:44111362 閱讀:19 留言:0更新日期:2025-01-24 22:36
    本發明專利技術涉及SQL數據庫技術領域,具體涉及一種基于JavaAgent和Javassist的數據庫分表方法及系統,包括:針對目標數據庫,創建分表線程并對關聯于目標數據庫的sql執行語句添加執行節點形成替換語句;當執行替換語句時,依照分表信息對替換語句中的表名信息進行修改形成實際執行語句;執行實際執行語句來構建對應于目標數據庫的數據庫分表。針對數據庫分表后需要對業務代碼中對應的表名稱進行修改的問題,在數據庫系統中出現了分表時,創建對應的分表線程,并對關聯的sql執行語句插入執行節點。當調用該sql執行語句時,通過分表線程對替換語句中對應的表名信息進行修改,來使得原有的語句指向分表處理后的實體表,實現了對分表的操作的同時不需要修改業務代碼。

    【技術實現步驟摘要】

    本專利技術涉及sql數據庫,具體涉及一種基于javaagent和javassist的數據庫分表方法及系統。


    技術介紹

    1、結構化查詢語言(structured?query?language)簡稱sql,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。分表,是指將數據庫中的一張表按一定的規則分解成n個具有獨立存儲空間的實體表。系統讀寫時需要根據定義好的規則得到對應的字表明,然后進行操作。由于sql數據庫表隨著數據的增加,查詢會變慢,因此在sql數據庫運維的過程中需要經常進行分區、分表操作。

    2、現有技術中,已存在有針對分表后的sql數據庫進行維護的技術方案,比如,中國專利cn201711000959.5公開了一種分庫分表模式下邏輯sql語句翻譯方法和裝置,接收并輸出邏輯sql語句;對所述輸出的邏輯sql語句進行語句分析,獲取所述邏輯sql語句的語法分析樹;對所述語法分析樹中表名與預設的分庫分表策略進行匹配,獲取所述語法分析樹中表名的分庫分表信息;基于所述分庫分表信息,將所述邏輯sql語句翻譯為物理sql語句。采用該技術方案,能提供便捷、高效的分庫分表的物理sql語句生成能力。

    3、但是,在實際實施過程中,專利技術人發現,該類技術方案在使用過程中,比如對某個分表中的數據進行操作時,仍需要通過代碼的形式添加對應的分表名稱,再由數據庫側維護對應的分表,導致了使用不便的問題,特別是在原有業務的基礎上產生了新的分表時,需要對相關業務的代碼進行修改才能實現正常操作。


    技術實現思路

    1、針對現有技術中存在的上述問題,現提供一種基于javaagent和javassist的數據庫分表方法;另一方面,還提供用于實施該數據庫分表方法的數據庫分表系統。

    2、具體技術方案如下:

    3、一種基于javaagent和javassist的數據庫分表方法,包括:

    4、步驟s1:針對目標數據庫,創建分表線程并對關聯于所述目標數據庫的sql執行語句添加執行節點形成替換語句;

    5、步驟s2:當執行所述替換語句時,數據庫系統調用所述分表線程以獲取分表信息,依照所述分表信息對所述替換語句中的表名信息進行修改形成實際執行語句;

    6、步驟s3:執行所述實際執行語句來構建對應于所述目標數據庫的數據庫分表。

    7、另一方面,所述步驟s1中,所述分表線程的線程創建過程包括:

    8、步驟a11:針對所述目標數據庫創建所述分表線程;

    9、步驟a12:于所述分表線程中寫入所述分表信息。

    10、另一方面,所述步驟s1中,生成所述替換語句的節點插入過程包括:

    11、步驟b11:遍歷所述sql執行語句,于所述sql執行語句中查找得到執行函數;

    12、步驟b12:對所述執行函數的方法體部分添加所述執行節點以形成所述替換語句。

    13、另一方面,所述步驟b11中,所述sql執行語句包括關聯于連接對象的sql語句和關聯于預處理對象的sql語句。

    14、另一方面,所述步驟s2包括:

    15、步驟s21:當觸發所述執行節點時,所述數據庫系統調用所述分表線程,以獲取所述分表信息;

    16、步驟s22:自所述替換語句中查找得到原表表名;

    17、步驟s23:依照所述分表信息替換所述原表表名得到所述實際執行語句。

    18、另一方面,于執行所述步驟s3之后還包括:

    19、步驟s4:清除所述分表線程中的所述分表信息。

    20、一種基于javaagent和javassist的數據庫分表系統,用于實施上述的數據庫分表方法,包括:

    21、線程生成模塊,所述線程生成模塊針對目標數據庫,創建分表線程并對關聯于所述目標數據庫的sql執行語句添加執行節點形成替換語句;

    22、語句替換模塊,所述語句替換模塊連接所述線程生成模塊,所述語句替換模塊在所述數據庫系統執行所述替換語句時,調用所述分表線程以獲取分表信息,依照所述分表信息對所述替換語句中的表名信息進行修改形成實際執行語句;

    23、執行模塊,所述執行模塊連接所述語句替換模塊,所述執行模塊執行所述實際執行語句來構建對應于所述目標數據庫的數據庫分表。

    24、另一方面,所述線程生成模塊包括:

    25、線程創建模塊,所述線程創建模塊針對所述目標數據庫創建所述分表線程;

    26、線程寫入模塊,所述線程寫入模塊連接所述線程創建模塊,所述線程寫入模塊于所述分表線程中寫入所述分表信息。

    27、另一方面,所述線程生成模塊包括:

    28、語句遍歷模塊,所述語句遍歷模塊遍歷所述sql執行語句,于所述sql執行語句中查找得到執行函數;

    29、方法體替換模塊,所述方法體替換模塊連接所述語句遍歷模塊,所述方法體替換模塊對所述執行函數的方法體部分添加所述執行節點以形成所述替換語句。

    30、另一方面,還包括:

    31、線程清除模塊,所述線程清除模塊連接所述執行模塊,所述線程清除模塊在構建所述數據庫分表后清除所述分表線程中的所述分表信息。

    32、上述技術方案具有如下優點或有益效果:

    33、針對現有技術中的數據庫分表后需要對業務代碼中對應的表名稱進行直接修改,使用不便的問題,本方案中,引入了上述的分表方法,在數據庫系統中出現了分表時,創建對應的分表線程,并對關聯的sql執行語句插入執行節點。當調用該sql執行語句時,通過分表線程對替換語句中對應的表名信息進行修改,來使得原有的語句指向分表處理后的實體表,實現了對分表的操作的同時不需要修改業務代碼。

    本文檔來自技高網...

    【技術保護點】

    1.一種基于JavaAgent和Javassist的數據庫分表方法,其特征在于,包括:

    2.根據權利要求1所述的數據庫分表方法,其特征在于,所述步驟S1中,所述分表線程的線程創建過程包括:

    3.根據權利要求1所述的數據庫分表方法,其特征在于,所述步驟S1中,生成所述替換語句的節點插入過程包括:

    4.根據權利要求3所述的數據庫分表方法,其特征在于,所述步驟B11中,所述sql執行語句包括關聯于連接對象的sql語句和關聯于預處理對象的sql語句。

    5.根據權利要求1所述的數據庫分表方法,其特征在于,所述步驟S2包括:

    6.根據權利要求2所述的數據庫分表方法,其特征在于,于執行所述步驟S3之后還包括:

    7.一種基于JavaAgent和Javassist的數據庫分表系統,其特征在于,用于實施如權利要求1-6任意一項所述的數據庫分表方法,包括:

    8.根據權利要求7所述的數據庫分表系統,其特征在于,所述線程生成模塊包括:

    9.根據權利要求7所述的數據庫分表系統,其特征在于,所述線程生成模塊包括:</p>

    10.根據權利要求8所述的數據庫分表系統,其特征在于,還包括:

    ...

    【技術特征摘要】

    1.一種基于javaagent和javassist的數據庫分表方法,其特征在于,包括:

    2.根據權利要求1所述的數據庫分表方法,其特征在于,所述步驟s1中,所述分表線程的線程創建過程包括:

    3.根據權利要求1所述的數據庫分表方法,其特征在于,所述步驟s1中,生成所述替換語句的節點插入過程包括:

    4.根據權利要求3所述的數據庫分表方法,其特征在于,所述步驟b11中,所述sql執行語句包括關聯于連接對象的sql語句和關聯于預處理對象的sql語句。

    5.根據權利要求1所述的數據庫分表方法...

    【專利技術屬性】
    技術研發人員:丁號丁軼
    申請(專利權)人:上海寰創通信科技股份有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 人妻无码第一区二区三区| 99无码人妻一区二区三区免费| 日韩国产成人无码av毛片| 日韩精品无码一区二区中文字幕| 亚洲av日韩av永久无码电影| 国产亚洲精品无码成人| 无码人妻H动漫中文字幕| 日韩精品无码专区免费播放| 极品无码国模国产在线观看| 亚洲另类无码专区丝袜| 亚洲中文字幕无码亚洲成A人片| 久久无码一区二区三区少妇| 中文午夜人妻无码看片| 中国无码人妻丰满熟妇啪啪软件 | 国产精品99精品无码视亚| 国内精品久久久久久无码不卡| 久久水蜜桃亚洲AV无码精品| 国产a级理论片无码老男人| 国产精品无码MV在线观看| 伊人天堂av无码av日韩av| 无码少妇一区二区性色AV| 无码h黄动漫在线播放网站| 免费无码又爽又高潮视频| 啊灬啊别停灬用力啊无码视频| 久久久久亚洲Av片无码v| 国产激情无码一区二区| 日本爆乳j罩杯无码视频| 亚洲AV永久无码精品成人| 好硬~好爽~别进去~动态图, 69式真人无码视频免 | 熟妇人妻无码中文字幕老熟妇| 夜夜添无码试看一区二区三区| 亚洲人成无码网站久久99热国产| 五月婷婷无码观看| 亚洲中文字幕无码久久2017| 狠狠久久精品中文字幕无码| 色国产色无码色欧美色在线| 无码射肉在线播放视频| MM1313亚洲精品无码久久| 无码人妻精品一区二区三区不卡| 免费无码又爽又刺激毛片| 一区二区三区无码高清视频|