[發明專利]一種根據模型描述同步數據庫表結構的方法及設備有效
| 申請號: | 202011363966.3 | 申請日: | 2020-11-27 |
| 公開(公告)號: | CN112486990B | 公開(公告)日: | 2023-05-02 |
| 發明(設計)人: | 趙磊 | 申請(專利權)人: | 浪潮通用軟件有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/27;G06F16/28 |
| 代理公司: | 北京君慧知識產權代理事務所(普通合伙) 11716 | 代理人: | 董延麗 |
| 地址: | 250101 山東省濟*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 根據 模型 描述 同步 數據庫 結構 方法 設備 | ||
1.一種根據模型描述同步數據庫表結構的方法,其特征在于,所述方法包括:
將數據庫表結構抽象為第一數據庫對象模型描述;
獲取數據庫連接信息及設置信息,構造Hibernate服務注冊構造器;
獲取并解析第二數據庫對象模型描述,映射成抽象語法樹,根據所述抽象語法樹生成實體類;其中,所述第二數據庫對象模型描述是基于所述第一數據庫對象模型描述修改得到的;
基于所述Hibernate服務注冊構造器,創建實例,以根據所述實體類與數據庫表結構的差別生成結構化查詢語言,同步所述數據庫表結構;
將數據庫表結構抽象為第一數據庫對象模型描述,具體包括:
將不同類型數據庫的表結構抽象為一種所述第一數據庫對象模型描述;
將不同類型數據庫的表結構抽象為一種所述第一數據庫對象模型描述,具體包括:
基于所述不同類型數據庫的表結構的共性,對所述不同類型數據庫的表結構的特性進行擴展描述,以得到一種所述第一數據庫對象模型描述;所述第一數據庫對象模型描述包括所述不同類型數據庫的表結構的共性和特性。
2.根據權利要求1所述的一種根據模型描述同步數據庫表結構的方法,其特征在于,映射成抽象語法樹之前,所述方法還包括:
判斷所述第二數據庫對象模型描述的修改是否與相應的數據庫兼容。
3.根據權利要求1所述的一種根據模型描述同步數據庫表結構的方法,其特征在于,獲取并解析第二數據庫對象模型描述,映射成抽象語法樹,根據所述抽象語法樹生成實體類,具體包括:
獲取數據庫對象模型描述列表;
將所述數據庫對象模型描述列表中的每一個第二數據庫對象模型描述都映射成相應的抽象語法樹;其中,每個所述抽象語法樹對應一個所述實體類;
針對各抽象語法樹,遍歷該抽象語法樹,根據該抽象語法樹的各個節點生成所述實體類;其中,所述抽象語法樹的各個節點分別對應相應第二數據庫對象模型描述的各個屬性。
4.根據權利要求3所述的一種根據模型描述同步數據庫表結構的方法,其特征在于,根據所述抽象語法樹生成實體類,具體包括:
根據所述抽象語法樹生成Hibernate映射表結構的實體類;
其中,所述實體類包括所述Hibernate映射表的標注。
5.根據權利要求4所述的一種根據模型描述同步數據庫表結構的方法,其特征在于,根據所述實體類與數據庫表結構的差別生成結構化查詢語言,同步所述數據庫表結構,具體包括:
根據所述Hibernate映射表的映射關系,對比所述實體類中列的結構和所述數據庫表結構的差別,以生成創建或增量結構化語言,同步所述數據庫表結構。
6.根據權利要求1所述的一種根據模型描述同步數據庫表結構的方法,其特征在于,根據所述抽象語法樹生成實體類之后,所述方法還包括:
調用javac命令對所述實體類進行編譯,以得到字節碼文件,將所述字節碼文件存入腳本目錄中;
掃描所述腳本目錄,使用指定的類加載器加載所述字節碼文件。
7.根據權利要求6所述的一種根據模型描述同步數據庫表結構的方法,其特征在于,創建實例之前,所述方法還包括:
使用所述Hibernate服務注冊構造器構造服務注冊中心;
通過所述服務注冊中心創建元數據源;
將編譯后的所述實體類添加至所述元數據源的被標注類列表中;其中,所述被標注類列表用于存放掃描到的編譯后的所述實體類;
通過編譯后的所述實體類中的標注,初始化所述實體類及其與數據庫的映射關系。
8.一種根據模型描述同步數據庫表結構的設備,其特征在于,所述設備包括:
處理器;
及存儲器,其上存儲有可執行代碼,當所述可執行代碼被執行時,使得所述處理器執行如權利要求1-7任一項所述的一種根據模型描述動態同步數據庫表結構的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮通用軟件有限公司,未經浪潮通用軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011363966.3/1.html,轉載請聲明來源鉆瓜專利網。





