C++數據庫實體類自動生成代碼模塊總結
阿新 • • 發佈:2018-10-09
的人 mysq ati -- 申請 使用 人工 自動 感覺
M系統的關於位置管理服務,一直想抽出來做一個獨立健壯的模塊。
但C++下沒有合適的數據庫實體類,或者響應的代碼生成工具。
找到一個生成C#的工具,照著生成出來的代碼,國慶前寫了一個entity代碼生成類,主要功能是查詢mysql information_schema表下的數據表結構,去生成增刪查改的功能,實體類還附帶加入了數據緩存。
其實這個homemake數據庫實體類,就是DB+MemCache,真實的數據放在DB裏,被提前申請的數據用內存來保存。
外部可以根據需要,查詢真實數據,或者是內存緩存的數據。
痛苦寫了兩天,寫出了一個所謂的自動代碼生成器,這個感覺跟C++模板很像。對象的抽象是類,類的抽象是模板,有樣學樣,代碼的抽象變成了這個代碼生成器。
這裏感嘆一下,要創造一個AI來生成代碼實在不容易。況且哥寫的這個生成器,無非只是個寫文件的類而已。這其中應該可以通過模板來幫助一下,可惜對模板的使用不熟。早上亂七八糟看了些模板的文檔,也毫無用處。
----------------------分割線
最後感嘆以及受限於數據庫表格的多樣性,這使得要寫一個實體類的生成器,顯得異常艱難。其實也可以做,就是做出來感覺後期的人工調整代碼也需要一定時間。
換一個方向吧:
1.定義數據表結構,盡量在前期統一,基本通用的字段先定下來。。 規則限死了,靈活度降低了,工作才好開展,不然一次性復雜度太大
.........
C++數據庫實體類自動生成代碼模塊總結