首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 提供者模式實作第三部分:SQL Server 資料提供者完整實作

     編輯:關於C語言

SqlMessageProvider:SQL Server 資料存取提供者實作

SqlMessageProvider 是提供者模式中最常見的實作,針對 SQL Server 資料庫進行資料操作。其結構與 XML 提供者高度相似,僅資料存取邏輯不同。

初始化邏輯

幾乎與 XMLMessageProvider 相同,差異僅在預設描述文字:

if (string.IsNullOrEmpty(config["description"])) {
    config.Remove("description");
    config.Add("description", "SqlServer操作Message");
}

連線字串解析流程完全一致,透過 connectionStringName 從配置檔取得資料庫連線字串。

資料操作方法框架

public override bool Insert(MessageModel mm) {
    // 實際應使用 ADO.NET 或 ORM 執行 INSERT T-SQL
    // 範例:using (var conn = new SqlConnection(_connectionString)) { ... }
    return true;
}

public override List<MessageModel> Get() {
    var list = new List<MessageModel>();
    // 實際應執行 SELECT 查詢並映射為 MessageModel 列表
    list.Add(new MessageModel($"SQL方式,連接字串為 {_connectionString}", DateTime.Now));
    return list;
}

實務開發建議

  1. 參數化查詢:防止 SQL 注入,使用 SqlParameter。
  2. 連線池管理:善用 using 區塊確保連線釋放。
  3. 交易支援:複雜操作時包裝於 SqlTransaction 中。
  4. 非同步模式:高併發場景考慮 async/await 與 ExecuteReaderAsync。

與 XML 提供者的對比

特性SqlMessageProviderXMLMessageProvider
資料結構關聯式表格階層式 XML
查詢語言T-SQLXPath/LINQ to XML
併發控制資料庫鎖/交易檔案鎖/手動實作
適合場景企業級應用、高併發小型資料、配置檔、離線場景

透過統一介面 MessageProvider,上層 Message 類別完全不需知道底層儲存細節,完美體現「面向介面程式設計」與「依賴倒置原則」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved