[NewLife.XCode]數據初始化

NewLife.XCode是一個有10多年曆史的開源數據中間件,支持nfx/netstandard,由新生命團隊(2002~2019)開發完成並維護至今,以下簡稱XCode。

整個系列教程會大量結合示例代碼和運行日誌來進行深入分析,蘊含多年開發經驗於其中,代表作有百億級大數據實時計算項目。

開源地址:https://github.com/NewLifeX/X (求star, 707+)

 

開發需要

一般應用系統部署都需要安裝腳本,建立數據表以及導入基礎數據,才能跑起來。

在XCode中,“建立數據表”這一步由反向工程包攬,再輔以一個“導入基礎數據”的功能即可。

此外,系統在初步配置的過程中,經常可能出現需要清空某些表,然後重置到“出廠數據”的狀態,例如魔方的菜單初始化。

 

系統開發日益靈活,客戶需求也越來越高,純粹的“基礎數據Insert腳本”已經不能滿足要求,逐漸出現能夠希望根據上下文環境決定初始化數據的需求。

XCode數據初始化功能,由此而生!

 

數據初始化

在前面章節《XCode實體類詳解》中提到,XCode生成的實體類,默認帶有一個數據初始化模版,正是InitData方法。

XCode的初始化通過重載InitData方法實現,它將會在該實體類首次讀寫數據庫之前執行。

儘管是異步執行,但主線程會阻塞3000ms等到數據初始化完成。因此,大部分實體類在首次使用的時候就有數據了。

 

Meta.Count用於判斷該數據表中有沒有數據,如果沒有數據,才添加一些默認數據。

 

高級初始化

初始化不等於就一定是插入數據,還可以做一些數據整理工作。

譬如Membership裏面的角色類

角色類每次啓動時,除了要檢查初始化四個基本角色外,還需要異步檢查清理已經刪除的菜單資源,確保角色數據足夠“純正”!

 

因此,所謂數據初始化,就是在所有數據庫操作之前,執行一些用戶自定義操作!

 

系列教程

NewLife.XCode教程系列[2019版]

  1. 增刪改查入門。快速展現用法,代碼配置連接字符串
  2. 數據模型文件。建立表格字段和索引,名字以及數據類型規範,推薦字段(時間,用戶,IP)
  3. 實體類詳解。數據類業務類,泛型基類,接口
  4. 功能設置。連接字符串,調試開關,SQL日誌,慢日誌,參數化,執行超時。代碼與配置文件設置,連接字符串局部設置
  5. 反向工程。自動建立數據庫數據表
  6. 數據初始化。InitData寫入初始化數據
  7. 高級增刪改。重載攔截,自增字段,Valid驗證,實體模型(時間,用戶,IP)
  8. 髒數據。如何產生,怎麼利用
  9. 增量累加。高併發統計
  10. 事務處理。單表和多表,不同連接,多種寫法
  11. 擴展屬性。多表關聯,Map映射
  12. 高級查詢。複雜條件,分頁,自定義擴展FieldItem,查總記錄數,查彙總統計
  13. 數據層緩存。Sql緩存,更新機制
  14. 實體緩存。全表整理緩存,更新機制
  15. 對象緩存。字典緩存,適用用戶等數據較多場景。
  16. 百億級性能。字段精煉,索引完備,合理查詢,充分利用緩存
  17. 實體工廠。元數據,通用處理程序
  18. 角色權限。Membership
  19. 導入導出。Xml,Json,二進制,網絡或文件
  20. 分表分庫。常見拆分邏輯
  21. 高級統計。聚合統計,分組統計
  22. 批量寫入。批量插入,批量Upsert,異步保存
  23. 實體隊列。寫入級緩存,提升性能。
  24. 備份同步。備份數據,恢復數據,同步數據
  25. 數據服務。提供RPC接口服務,遠程執行查詢,例如SQLite網絡版
  26. 大數據分析。ETL抽取,調度計算處理,結果持久化

 

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