前言:
?????? 以數(shù)據(jù)庫導(dǎo)出為excel文件為樣例,分析抽象性思維和元數(shù)據(jù)定義、解析運行的過程。
問題:
?????? 系統(tǒng)中比較常見各種excel導(dǎo)出的功能要求,怎樣開發(fā)一個通用的excel導(dǎo)出功能?能夠適應(yīng)各種需求?
探索:
?????? 首先須要手動寫一個從數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)到excel的程序,盡量使用別使用ssh之類。
分析:
?????? 數(shù)據(jù)導(dǎo)出為excel功能,主要分為兩個過程:
(1)???依照需求從數(shù)據(jù)庫中獲取符合需求的數(shù)據(jù)集;
(2)???依照要求創(chuàng)建符合需求的excel模板;
(3)???把數(shù)據(jù)寫入excel,并依照一定規(guī)則命名excel文件;
思考:
?????? 列出幾個導(dǎo)出excel的實際樣例,依照上面分析的流程再次分析,提取出變化和不變的不同部分,不變的部分作為通用的架構(gòu),變化的部分用數(shù)據(jù)定義清楚。能夠看出變化的須要定義的內(nèi)容是:
(1)???獲取數(shù)據(jù)集的sql語句及要返回的字段列表;
(2)???Excel模板的字段列表;
(3)???數(shù)據(jù)集字段列表和excel模板的字段列表的字段相應(yīng)關(guān)系;
改動導(dǎo)出程序,使得程序能夠依據(jù)上面定義的內(nèi)容運行對應(yīng)的操作,達(dá)到導(dǎo)出excel的目的。上面配置的內(nèi)容能夠放到xml文件、文本文件或者數(shù)據(jù)庫中均可;事實上這部分?jǐn)?shù)據(jù)既能夠稱為元數(shù)據(jù);
思考重點:
(1)???抽象性思維;
(2)???分析過程,提取出一切不可控的可能會依據(jù)需求變化而變化的部分;
(3)???變化的內(nèi)容就是須要配置定義的內(nèi)容,也就是元數(shù)據(jù),元數(shù)據(jù)的格式即為元模型;
(4)???改動程序,能夠自己主動解析適應(yīng)元數(shù)據(jù);
(5)???盡量的考慮各種需求,提高定義的元數(shù)據(jù)的格式的有用性,提高通用程序的適用性;
興許擴展:
(1)???考慮支持多種數(shù)據(jù)庫,數(shù)據(jù)鏈接信息須要進行配置定義;
(2)???考慮支持導(dǎo)出excel或文本文件,須要定義導(dǎo)出方式及格式;
(3)???考慮配置數(shù)據(jù)定義和維護時的方便快捷性,定義配置數(shù)據(jù)的格式及維護界面;
? ?
PS:EEPlat(www.eeplat.com)從根本上也是這樣的思想的產(chǎn)物,僅僅只是EEPlat實現(xiàn)的系統(tǒng)的總體的分析定義和通用解析運行。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
