新四季網

一種通用的元數據/關係映射框架的製作方法與工藝

2023-06-01 03:30:01 2

本發明涉及電力系統資料庫領域,具體為一種通用的元數據/關係映射框架。

背景技術:
自律分散的即插即用數據平臺採用以三層HashMap形式表示的元數據作為統一結構來存儲各種格式的電力數據。元數據雖解決了異構數據歸一化的問題,但數據平臺中下層模塊的開發者只能通過調用HashMap所支持的get/put方法並指定Tag/Key名作為參數對元數據進行增、刪、改、查等操作,這不僅使模塊代碼違背了面向對象設計的原則,而且降低了開發者對數據涉及具體業務的關注度。

技術實現要素:
為了克服上述現有技術的不足,本發明的目的在於提供一種通用的元數據/關係映射框架。為了達到上述目的,本發明所採用的技術方案為:一種通用的元數據/關係映射框架,其特徵在於:邏輯結構如下:映射配置的定義,編輯元數據/關係映射所必要的配置信息,配置信息保存在配置文件中;實體代理類的生成,根據映射配置信息,生成與元數據中Tag對應的實體代理類的字節碼;DAO類及其CRUD方法的生成,根據映射配置信息,為元數據各Tag生成對應DAO類的CRUD方法的字節碼,用於以面向對象和業務相關的方式對元數據進行增、刪、改、查操作;MQL語法分析,對用戶提交的類SQL的MQL語句進行語法分析,並提示語法錯誤信息;結果集封裝與迭代,執行用戶提交的MQL語句,並將返回結果集封裝為實體代理類對象組成的列表以方便後續的迭代操作;事務管理,對元數據進行更改的過程中,若發生任何錯誤則自動回滾數據,以保證元數據的數據完整性。所述的一種通用的元數據/關係映射框架,其特徵在於:所述映射配置的定義過程如下:步驟1:啟動映射配置定義模塊,選擇要操作的元數據格式;步驟2:定義元數據中的每個Tag對應的實體類名稱;步驟3:定義Tag下的每個Key對應的欄位名稱和類型;步驟4:根據元數據採用的三層HashMap的中層Map,定義其Key值對應的組成欄位,以作為後述實體類的主鍵欄位;步驟5:分析並校驗以上映射配置是否合法。所述的一種通用的元數據/關係映射框架,其特徵在於:所述實體代理類的生成過程如下:步驟1:讀取映射配置文件,獲取實體類及其欄位的信息;步驟2:根據映射配置信息,利用虛擬機字節碼生成工具,生成實體類的字節碼,包括欄位、主鍵欄位、各欄位的setter/getter方法;步驟3:結合動態代理模式,為實體類生成代理接口;步驟4:利用虛擬機字節碼生成工具,生成代理接口的實現類。所述的一種通用的元數據/關係映射框架,其特徵在於:所述DAO類及其CRUD方法的生成過程如下:步驟1:根據映射配置信息,利用虛擬機字節碼生成工具,為元數據各Tag生成對應DAO類的字節碼;步驟2:為實體類各欄位生成對應的findBy方法,其以某個欄位的值為查找條件,返回對應Tag下相匹配的記錄行構成的實體對象列表;步驟3:生成findByPK方法,其以主鍵欄位的值為查找條件,返回對應Tag下具有相同中層Key值的唯一記錄行對應的實體對象;步驟4:生成findAll方法,其返回對應Tag下所有記錄行構成的實體對象列表;步驟5:生成findByConditions方法,其分別以指定的多個欄位值和欄位名作為組合查詢條件和排序依據,返回對應Tag下相匹配的記錄行經過排序後構成的實體對象列表;步驟6:生成update方法,其根據指定的實體對象的主鍵欄位找到對應Tag下具有相同中層Key值的唯一記錄行,並使用實體對象的各欄位值更新該記錄行下的對應Key值;步驟7:生成delete方法,其根據指定的實體對象的主鍵欄位找到對應Tag下具有相同中層Key值的唯一記錄行,並刪除該記錄行;步驟8:生成insert方法,其根據指定實體對象所屬的實體類找到對應的Tag,並在該Tag下新增一條記錄行,該記錄行的中層Key值為指定實體對象的主鍵欄位值。所述的一種通用的元數據/關係映射框架,其特徵在於:通過框架提供的MQL語法分析、MQL語句執行以及結果集封裝邏輯,數據管理平臺中下層模塊的開發者可編寫類SQL語法的MQL語句以直接對元數據進行CRUD操作。所述的一種通用的元數據/關係映射框架,其特徵在於:在對元數據進行增、刪、改等寫操作時,元數據/關係映射框架通過AOP技術自動維護事務的開啟和提交,並在發生任何異常時自動回滾之前已執行的寫操作,保證了元數據的完整性和一致性,及降低了事務控制等非功能性代碼對業務代碼的侵入性,從而有效提升數據管理平臺中各下層模塊代碼的可理解性與可維護性。本發明可無縫適配到電力數據管理平臺中現有的元數據模塊之上。框架藉助動態代理和AOP等手段,對最原始的元數據增、刪、改、查等操作進行透明封裝,為以三層HashMap結構存儲的元數據增添了關係模型所具備的能力和特徵,具體包括:元數據查詢語言MQL(MetadataQueryLanguage)、Tag與實體對象映射配置、元數據CRUD操作的面向對象封裝、結果集封裝與迭代API、事務控制等。本發明與現有的技術相比,具有如下優點:(1),框架採用動態代理、字節碼生成和AOP等非侵入機制實現,不需要修改現有以HashMap為存儲結構的元數據模塊的任何代碼。框架本身也以OSGi的Bundle形式熱插拔到數據管理平臺中,所有可配置部分均存放在獨立的映射配置文件中。(2),框架在發生任何異常時自動回滾之前已執行的寫操作,不僅保證了元數據的完整性和一致性,而且降低了事務控制等非功能性代碼對業務代碼的侵入性,從而有效提升數據管理平臺中各下層模塊代碼的可理解性與可維護性。(3),使用本框架開發數據管理平臺中各下層模時,能以實體對象的方式操作元數據,使得代碼邏輯更易於理解,並提升了開發者對數據涉及具體業務的關注度。(4),本框架使得數據管理平臺中各下層模塊可以遵循標準的JavaEE多層架構開發,使得各層代碼清晰分離,對電網應用的快速需求變更具有更高的適應性。附圖說明圖1為本發明功能及邏輯劃分圖。具體實施方式如圖1所示。一種通用的元數據/關係映射框架,邏輯結構如下:映射配置的定義,編輯元數據/關係映射所必要的配置信息,配置信息保存在配置文件中;實體代理類的生成,根據映射配置信息,生成與元數據中Tag對應的實體代理類的字節碼;DAO類及其CRUD方法的生成,根據映射配置信息,為元數據各Tag生成對應DAO類(DataAccessObject)的CRUD(Create、Retrieve、Update、Delete)方法的字節碼,用於以面向對象和業務相關的方式對元數據進行增、刪、改、查操作;MQL語法分析,對用戶提交的類SQL的MQL語句進行語法分析,並提示語法錯誤信息;結果集封裝與迭代,執行用戶提交的MQL語句,並將返回結果集封裝為實體代理類對象組成的列表以方便後續的迭代操作;事務管理,對元數據進行更改的過程中,若發生任何錯誤則自動回滾數據,以保證元數據的數據完整性。映射配置的定義過程如下:步驟1:啟動映射配置定義模塊,選擇要操作的元數據格式;步驟2:定義元數據中的每個Tag對應的實體類名稱;步驟3:定義Tag下的每個Key對應的欄位名稱和類型;步驟4:根據元數據採用的三層HashMap的中層Map,定義其Key值對應的組成欄位,以作為後述實體類的主鍵欄位;步驟5:分析並校驗以上映射配置是否合法。實體代理類的生成過程如下:步驟1:讀取映射配置文件,獲取實體類及其欄位的信息;步驟2:根據映射配置信息,利用虛擬機字節碼生成工具,生成實體類的字節碼,包括欄位、主鍵欄位、各欄位的setter/getter方法;步驟3:結合動態代理模式,為實體類生成代理接口;步驟4:利用虛擬機字節碼生成工具,生成代理接口的實現類。DAO類及其CRUD方法的生成過程如下:步驟1:根據映射配置信息,利用虛擬機字節碼生成工具,為元數據各Tag生成對應DAO類的字節碼;步驟2:為實體類各欄位生成對應的findBy方法,其以某個欄位的值為查找條件,返回對應Tag下相匹配的記錄行構成的實體對象列表;步驟3:生成findByPK方法,其以主鍵欄位的值為查找條件,返回對應Tag下具有相同中層Key值的唯一記錄行對應的實體對象;步驟4:生成findAll方法,其返回對應Tag下所有記錄行構成的實體對象列表;步驟5:生成findByConditions方法,其分別以指定的多個欄位值和欄位名作為組合查詢條件和排序依據,返回對應Tag下相匹配的記錄行經過排序後構成的實體對象列表;步驟6:生成update方法,其根據指定的實體對象的主鍵欄位找到對應Tag下具有相同中層Key值的唯一記錄行,並使用實體對象的各欄位值更新該記錄行下的對應Key值;步驟7:生成delete方法,其根據指定的實體對象的主鍵欄位找到對應Tag下具有相同中層Key值的唯一記錄行,並刪除該記錄行;步驟8:生成insert方法,其根據指定實體對象所屬的實體類找到對應的Tag,並在該Tag下新增一條記錄行,該記錄行的中層Key值為指定實體對象的主鍵欄位值。通過框架提供的MQL語法分析、MQL語句執行以及結果集封裝邏輯,數據管理平臺中下層模塊的開發者可編寫類SQL語法的MQL語句以直接對元數據進行CRUD操作。在對元數據進行增、刪、改等寫操作時,元數據/關係映射框架通過AOP(Aspect-OrientedProgramming)技術自動維護事務的開啟和提交,並在發生任何異常時自動回滾之前已執行的寫操作,保證了元數據的完整性和一致性,及降低了事務控制等非功能性代碼對業務代碼的侵入性,從而有效提升數據管理平臺中各下層模塊代碼的可理解性與可維護性。如圖1所示,本發明為一種通用的元數據/關係映射框架,可適配到電力數據管理平臺中現有的元數據模塊之上。框架藉助動態代理和AOP等手段,對最原始的元數據增、刪、改、查等操作進行了透明的面向對象封裝,同時為以三層HashMap結構存儲的元數據增添了關係模型所具備的能力和特徵。實施例1,生成實體代理類。首先,讀取映射配置文件,獲取實體類及其欄位的信息;然後,根據映射配置信息,利用虛擬機字節碼生成工具,生成實體類的字節碼,包括欄位、主鍵欄位、各欄位的setter/getter方法;接著,結合動態代理模式,為實體類生成代理接口;最後,生成代理接口的實現類。實施例2,生成實體代理類對應的DAO類及其CRUD方法。首先,根據映射配置信息,利用虛擬機字節碼生成工具,為元數據各Tag生成對應DAO類的字節碼;然後,為各DAO類生成以欄位值為查找條件的findBy方法、以主鍵欄位為查找條件的findByPK方法、返回對應Tag下所有記錄行構成的實體對象列表的findAll方法、以多個欄位值和欄位名為組合查詢條件和排序依據的findByConditions方法;最後,分別生成用於修改、刪除和插入實體類對象的update、delete和insert方法。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀