[發明專利]一種分表方法、裝置及電子設備有效
| 申請號: | 201710023995.7 | 申請日: | 2017-01-12 |
| 公開(公告)號: | CN106886568B8 | 公開(公告)日: | 2018-05-01 |
| 發明(設計)人: | 錢文品;劉偉平;王良;余菲;陳超 | 申請(專利權)人: | 掌閱科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京市廣友專利事務所有限責任公司11237 | 代理人: | 祁獻民 |
| 地址: | 100022 北京市朝陽區東三環中路3*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 方法 裝置 電子設備 | ||
技術領域
本發明涉及數據處理技術領域,尤其涉及數據庫分表處理技術。
背景技術
Hibernate是一個基于Java的開源的持久化中間件,對JDBC(Java Data Base Connectivity,Java數據庫連接)做了輕量的封裝。其采用ORM(Object Relation Mapping,對象關系映射)機制,實現Java對象和關系數據庫之間的映射,把sql語句傳給數據庫,并且把數據庫返回的結果封裝成對象。內部封裝了JDBC訪問數據庫的操作,向上層應用提供了面向對象的數據庫訪問API。由于其可以以對象的形式操作數據,更換數據庫時只要修改配值文件,而不用關心數據庫種類,因而提高了開發效率。
分表是將一張大表切分為同一個數據庫的多張表,抵抗因數據量過大而影響性能的一種方法。發明人在實現本發明的過程中發現,Hibernate-Shards開源框架是基于Hibernate的強大的分庫框架,但是不支持分表。Hibernate NamingStrategy是Hibernate提供的表名替換策略,其可以進行簡單的分表操作,但是不能根據實例參數動態決定表名,一般只能用于按時間進行分表的場景。Hibernate QueryInterceptor是Hibernate提供的查詢攔截器,用戶可以在生成sql語句時進行攔截,將相應的表名動態替換成具體的分表,需要解析sql語句,實現復雜,性能和維護性都較差,而且也不可以根據實例參數動態決定表名,一般只能用戶按時間進行分表。
因此,需要一種基于Hibernate的更加簡單有效的分表處理方法。
發明內容
有鑒于此,本發明實施例提供了一種分表方法、裝置及電子設備,至少部分的解決現有技術中存在的問題。
第一方面,本發明實施例提供了一種分表方法,包括:
動態生成多個子表模型類;
在開源框架的配置中心注冊所述子表模型類;
選擇所述子表模型類中需要進行數據操作的子表模型類;
利用所述開源框架提供的數據操作功能,對所述需要進行數據操作的子表模型類的實例執行相應的數據操作。
根據本發明實施例的一種具體實現方式,在所述動態生成多個子表模型類之前,所述方法還包括:
在所述開源框架中定義單表模型類。
根據本發明實施例的一種具體實現方式,所述動態生成多個子表模型類,包括:
獲取所述開源框架關聯的數據庫的分表需求;
基于所述分表需求,利用第三方開源類庫動態生成多個子表模型類。
根據本發明實施例的一種具體實現方式,所述在開源框架的配置中心注冊所述子表模型類,包括:
生成所述子表模型類對應的類文件;
將所述類文件保存在所述開源框架的預設掃描位置。
根據本發明實施例的一種具體實現方式,所述在開源框架的配置中心注冊所述子表模型類,包括:
獲取所述開源框架的會話接口文件;
基于所述會話接口文件,判斷所述子表模型類是否采用動態方式進行加載;
當所述子表模型類采用動態方式進行加載時,更新所述開源框架的配置文件,并重新創建所述開源框架的會話接口文件。
根據本發明實施例的一種具體實現方式,所述選擇所述子表模型類中需要進行數據操作的子表模型類,包括:
基于所述開源框架關聯的數據庫的分表需求定義散列方法;
獲取所述開源框架關聯的數據庫的預設字段;
基于所述散列方法對所述預設字段進行數據運算;
根據所述數據運算的結果確定需要進行數據操作的子表模型類。
根據本發明實施例的一種具體實現方式,所述利用所述開源框架提供的數據操作功能,對所述需要進行數據操作的子表模型類的實例執行相應的數據操作,包括:
使用所述開源框架提供的數據增加、數據刪除、數據修改及數據查詢功能,顯式指定所述需要進行數據操作的子表模型類進行相關數據操作。
根據本發明實施例的一種具體實現方式,所述利用所述開源框架提供的數據操作功能,對所述需要進行數據操作的子表模型類的實例執行相應的數據操作,還包括:
使用反射方法構建所述需要進行數據操作的子表模型類的模型實例;
使用不包含重復元素的類集對所述模型實例進行數據填充。
第二方面,本發明實施例還提供了一種分表裝置,包括:
生成模塊,用于動態生成多個子表模型類;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于掌閱科技股份有限公司,未經掌閱科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710023995.7/2.html,轉載請聲明來源鉆瓜專利網。





