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

[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)

    分享創造快樂