歡迎光臨
每天分享高質量文章

[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抽取,調度計算處理,結果持久化

 

受蘋果公司新規定影響,微信 iOS 版的贊賞功能被關閉,可通過二維碼轉賬支持公眾號。

    赞(0)

    分享創造快樂