[發明專利]基于Hibernate的數據映射方法及系統在審
| 申請號: | 201711229296.4 | 申請日: | 2017-11-29 |
| 公開(公告)號: | CN107992566A | 公開(公告)日: | 2018-05-04 |
| 發明(設計)人: | 劉抒平;李守剛 | 申請(專利權)人: | 北京天健通泰科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京創遇知識產權代理有限公司11577 | 代理人: | 李芙蓉,馮建基 |
| 地址: | 100081 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 hibernate 數據 映射 方法 系統 | ||
技術領域
本發明涉及計算機技術領域,具體涉及一種基于Hibernate的數據映射方法及系統。
背景技術
Hibernate是一個應用非常廣泛的開源的數據持久層的框架,其核心思想是建立對象與數據庫表的映射關系,使開發者可以使用對象的思維操作數據庫。
但是,Hibernate映射數據庫方式不夠靈活,與數據庫表相對應的映射對象,其屬性必須與數據庫表一一對應。如果表與表之間關系復雜,關聯的表比較多,對象中的映射較多,在構建映射對象時,而且即使是單個表的查詢,也會查詢關聯映射的表,造成不必要的資源開銷和降低查詢效率。
為了提高查詢效率,降低資源開銷,對于復雜的業務,當前的做法是,使用原生SQL進行查詢,但這樣一來,數據庫表字段就不能直接映射到對象上了,對返回來的數據,要通過數據集下標與數據對象屬性一一對應,容易出錯,且復用率低。如果以后該多加一個屬性或者刪除一個,需要修改的地方就比較多了,這樣可維護性就比較差。
發明內容
本發明的目的在于提供一種基于Hibernate的數據映射方法及系統,能夠使用戶不需要考慮如何去映射,簡化利用Hibernate執行原生SQL的復雜度。
為實現上述目的,本發明一種基于Hibernate的數據映射方法,包括:
步驟S1:獲取原生SQL,并執行原生SQL;
步驟S2:初始化映射類,所述映射類繼承于Hibernate的ResultTransformer,以利用其查詢結果轉換方法transformTuple,將原生SQL對應的實體類全名字符串傳入所述映射類中,通過利用反射機制取得數據實體類對象;
步驟S3:在transformTuple方法中,取得原生SQL查詢的字段名,通過數據實體類對象獲得實體類屬性名,循環比對原生SQL查詢的字段名和實體類屬性名,將原生SQL查詢的字段名的字段值賦予屬性,完成字段與實體屬性的映射,使字段和實體屬性的映射被隱藏于所述映射類中;
步驟S4:通過所述映射類獲取數據實體對象。
進一步地,在步驟S1中,通過Hibernate的createSQLQuery方法執行所述原生SQL。
進一步地,在步驟S2中,將所述數據實體類全名字符串通過映射類構造函數傳入到所述映射類中。
進一步地,在步驟S3中,通過方法參數aliases取得原生SQL查詢的字段名。
為實現上述目的,本發明的技術方案還提供了一種基于Hibernate的數據映射系統,包括:
執行模塊,用于獲取原生SQL,并執行原生SQL;
初始化模塊,用于初始化映射類,所述映射類繼承于Hibernate的ResultTransformer,以利用其查詢結果轉換方法transformTuple,以及將原生SQL對應的實體類全名字符串傳入所述映射類中,通過利用反射機制取得數據實體類對象;
映射模塊,用于在transformTuple方法中,取得原生SQL查詢的字段名,通過數據實體類對象獲得實體類屬性名,循環比對原生SQL查詢的字段名和實體類屬性名,將原生SQL查詢的字段名的字段值賦予屬性,完成字段與實體屬性的映射,使字段和實體屬性的映射被隱藏于所述映射類中;
處理模塊,用于通過所述映射類獲取數據實體對象。
進一步地,所述執行模塊通過Hibernate的createSQLQuery方法執行所述原生SQL。
進一步地,所述初始化模塊將所述數據實體類全名字符串通過映射類構造函數傳入到所述映射類中。
進一步地,所述映射模塊通過方法參數aliases取得原生SQL查詢的字段名。
本發明提供的基于Hibernate的數據映射方法,通過將字段和實體屬性的映射被通用的隱藏于映射類中,用戶不需要考慮如何去映射,極大簡化了利用Hibernate執行原生SQL的復雜度。
附圖說明
圖1是本發明實施方式提供的一種基于Hibernate的數據映射方法的流程圖。
具體實施方式
下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
參見圖1,圖1是本發明實施方式提供的一種基于Hibernate的數據映射方法的流程圖,該方法包括:
步驟S1:獲取原生SQL,并執行原生SQL;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京天健通泰科技有限公司,未經北京天健通泰科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711229296.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種優化搜索引擎的方法及系統
- 下一篇:數據采集方法及數據采集系統
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





