手寫orm框架思路

orm框架思路:

分爲兩步,第一步,解析sql,封裝完整可執行業務sql。第二步,封裝鏈接池,封裝方法。

解析sql:

sql文件配置到xml文件中, 通過dom,sax進行xml文件解析,解析過程中會對邏輯運行標籤進行運算(Aviator,groovy等框架對邏輯運算有很好的支持),根據邏輯運算進行sql文件的配裝,配裝完整的sql根據對應業務id存儲到緩存中, 以上操作都可以在項目啓動時可以用@postConstruct進行預加載,也可以在使用時進行加載。

封裝連接池,封裝調用方法:

把不同數據庫鏈接參數通過druiddatasource構建不同鏈接池,以數據庫類型爲key,對應的連接池爲value進行緩存,此處同樣在項目啓動時進行處理。數據庫的對應的操作方法,在druiddatasource.getConnection基礎上進行封裝(此處可採用jdbc的基礎操作進行封裝)。sql並行處理,原理是採用Callable、Future和FutureTask 異步結果返回並進行聚合,此外可以採用redis等緩存,通過多線程執行查詢sql,返回每個業務線id,最終結果根據業務id進行結果聚合,但是此處因爲不同業務sql執行時間的不同,不能準確的知道整個業務集合具體返回時間。可以把每個業務線在執行前把業務id和狀態碼進行保存,每個線程中把業務sql執行成功的對應業務id狀態碼修改一下。業務集合在確保庫中業務碼都已完成,則取緩存中取結果進行聚合(此處需要接口中進行輪訓處理)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章