本申請涉及文件解析,特別是涉及一種基于數(shù)據(jù)庫配置關(guān)系的文件解析方法、裝置、介質(zhì)及產(chǎn)品。
背景技術(shù):
1、隨著金融產(chǎn)品代銷業(yè)務(wù)的迅猛增長,傳統(tǒng)的線下代銷模式正逐步向線上模式轉(zhuǎn)變。在這一過程中,同一金融機構(gòu)往往需要與日益增多的代銷機構(gòu)進行對接。同時,為了保障數(shù)據(jù)傳輸?shù)男屎桶踩?,與代銷機構(gòu)交互的數(shù)據(jù)傳輸文件版本也在不斷地進行升級和改造。
2、為了更加高效、便捷地適應(yīng)和對接不同的代銷機構(gòu),需要一種高效靈活的文件解析方法。
技術(shù)實現(xiàn)思路
1、本申請的目的是提供一種基于數(shù)據(jù)庫配置關(guān)系的文件解析方法、裝置、介質(zhì)及產(chǎn)品,提高了金融機構(gòu)與代銷機構(gòu)之間的數(shù)據(jù)交互效率和準確性。
2、為實現(xiàn)上述目的,本申請?zhí)峁┝巳缦路桨福?/p>
3、第一方面,本申請?zhí)峁┝艘环N基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,包括:
4、建立與mysql數(shù)據(jù)庫的連接;
5、讀取mysql數(shù)據(jù)庫中的配置維護關(guān)系表,得到代銷機構(gòu)和版本號的配置信息,基于所述配置信息構(gòu)建字段映射表;
6、將所述配置信息映射到j(luò)ava對象中;
7、獲取待解析文件;
8、對所述待解析文件進行解析處理,得到解析處理后的數(shù)據(jù),并將解析處理后的數(shù)據(jù)批量保存到目標數(shù)據(jù)庫中;所述目標數(shù)據(jù)庫為金融機構(gòu)的數(shù)據(jù)庫;
9、關(guān)閉與mysql數(shù)據(jù)庫的連接。
10、可選地,在建立與mysql數(shù)據(jù)庫的連接之前,還包括:
11、在mysql數(shù)據(jù)庫中,創(chuàng)建所述配置關(guān)系維護表。
12、可選地,建立與mysql數(shù)據(jù)庫的連接,包括:
13、通過java的jdbc框架,構(gòu)建與mysql數(shù)據(jù)庫的連接。
14、可選地,所述配置維護關(guān)系表中的字段,包括:id、代銷機構(gòu)、版本號、文件字段名、目標數(shù)據(jù)庫字段名、數(shù)據(jù)類型、數(shù)據(jù)長度限制、是否必填、生效狀態(tài)和生效日期。
15、可選地,讀取mysql數(shù)據(jù)庫中的配置維護關(guān)系表,得到代銷機構(gòu)和版本號的配置信息,基于所述配置信息構(gòu)建字段映射表,包括:
16、基于java的持久層框架ibatis的sqlmaps,通過查詢語句來執(zhí)行查詢,從所述配置維護關(guān)系表中檢索代銷機構(gòu)和版本號的配置信息;
17、利用所述配置信息構(gòu)建字段映射表;其中,所述字段映射表的鍵為所述文件字段名,所述字段映射表的值為目標數(shù)據(jù)庫字段fieldinfo對象。
18、可選地,對所述待解析文件進行解析處理,得到解析處理后的數(shù)據(jù),并將解析處理后的數(shù)據(jù)批量保存到目標數(shù)據(jù)庫中,包括:
19、根據(jù)文件路徑和文件名,使用java的文件io類庫fileinputstream打開和讀取所述待解析文件;
20、使用read()方法逐個字節(jié)地讀取所述待解析文件的文件內(nèi)容,并將文件存儲到字節(jié)數(shù)組中;
21、根據(jù)行分隔符rowseparator將文件內(nèi)容拆分成多行,使用string的split()方法,按照行分隔符"\r\n"將文件內(nèi)容拆分成一個字符串數(shù)組,根據(jù)字段分隔符fieldseparator將每一行數(shù)據(jù)拆分成多個字段,對于每一行數(shù)據(jù),使用split()方法按照字段分隔符"\t"拆分成一個字符串數(shù)組;
22、遍歷每一行拆分好的字符串數(shù)組,并進行邏輯校驗,根據(jù)字段名稱和數(shù)據(jù)類型,使用反射api屬性訪問器來將字段值映射到所述java對象的屬性上,根據(jù)數(shù)據(jù)類型,執(zhí)行相應(yīng)的數(shù)據(jù)類型轉(zhuǎn)換;所述邏輯校驗包括:是否必填和數(shù)據(jù)長度限制;
23、創(chuàng)建用于存儲解析后的java對象的集合arraylist,將每行解析得到的java對象添加到集合arraylist中,利用對象關(guān)系映射框架,將解析處理后的數(shù)據(jù)批量保存到目標數(shù)據(jù)庫中。
24、可選地,所述基于數(shù)據(jù)庫配置關(guān)系的文件解析方法還包括:
25、設(shè)置異常捕獲和處理機制,根據(jù)錯誤類型對捕獲到的異常信息進行分類處理;所述分類處理包括:記錄錯誤日志、發(fā)送報警通知和執(zhí)行回滾操作;
26、使用日志框架記錄日志信息;所述日志信息包括:關(guān)鍵操作、異常信息和系統(tǒng)運行狀態(tài)。
27、第二方面,本申請?zhí)峁┝艘环N計算機裝置,包括:存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序以實現(xiàn)上述任一項所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法。
28、第三方面,本申請?zhí)峁┝艘环N計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)上述任一項所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法。
29、第四方面,本申請?zhí)峁┝艘环N計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)上述任一項所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法。
30、根據(jù)本申請?zhí)峁┑木唧w實施例,本申請公開了以下技術(shù)效果:
31、本申請公開了一種基于數(shù)據(jù)庫配置關(guān)系的文件解析方法、裝置、介質(zhì)及產(chǎn)品,首先,建立與mysql數(shù)據(jù)庫的連接;然后,讀取mysql數(shù)據(jù)庫中的配置維護關(guān)系表,得到代銷機構(gòu)和版本號的配置信息,基于配置信息構(gòu)建字段映射表;其次,將配置信息映射到j(luò)ava對象中;獲取待解析文件;再次,對待解析文件進行解析處理,得到解析處理后的數(shù)據(jù),并將解析處理后的數(shù)據(jù)批量保存到目標數(shù)據(jù)庫中;目標數(shù)據(jù)庫為金融機構(gòu)的數(shù)據(jù)庫;最后,關(guān)閉與mysql數(shù)據(jù)庫的連接。通過簡單的配置,即可實現(xiàn)對不同版本數(shù)據(jù)傳輸文件的讀取和解析,從而極大地提高了金融機構(gòu)與代銷機構(gòu)之間的數(shù)據(jù)交互效率和準確性。
1.一種基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,所述基于數(shù)據(jù)庫配置關(guān)系的文件解析方法包括:
2.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,在建立與mysql數(shù)據(jù)庫的連接之前,還包括:
3.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,建立與mysql數(shù)據(jù)庫的連接,包括:
4.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,所述配置維護關(guān)系表中的字段,包括:id、代銷機構(gòu)、版本號、文件字段名、目標數(shù)據(jù)庫字段名、數(shù)據(jù)類型、數(shù)據(jù)長度限制、是否必填、生效狀態(tài)和生效日期。
5.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,讀取mysql數(shù)據(jù)庫中的配置維護關(guān)系表,得到代銷機構(gòu)和版本號的配置信息,基于所述配置信息構(gòu)建字段映射表,包括:
6.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,對所述待解析文件進行解析處理,得到解析處理后的數(shù)據(jù),并將解析處理后的數(shù)據(jù)批量保存到目標數(shù)據(jù)庫中,包括:
7.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)庫配置關(guān)系的文件解析方法,其特征在于,所述基于數(shù)據(jù)庫配置關(guān)系的文件解析方法還包括:
8.一種計算機裝置,包括:存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序以實現(xiàn)權(quán)利要求1-7中任一項所述基于數(shù)據(jù)庫配置關(guān)系的文件解析方法。
9.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,該計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1-7中任一項所述基于數(shù)據(jù)庫配置關(guān)系的文件解析方法。
10.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,該計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1-7中任一項所述基于數(shù)據(jù)庫配置關(guān)系的文件解析方法。