人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

用C#完成的數據庫抽象工廠(一)

用C#完成的數據庫抽象工廠(一)

更新時間:2022-07-01 文章作者:未知 信息來源:網絡 閱讀次數:

用C#實現的數據庫抽象工廠(一)

最近學習了一下設計模式,便嘗試用C#對數據庫的訪問操作采用抽象工廠的模式實現一下,其中與標準的模式略有不同,加入了一些自己的想法,希望大家批評指正,代碼共分為6個類:

(1)AbstractDbFactory.cs

using System;
using System.Data;

namespace DbService
{
/// <summary>
/// 數據庫抽象工廠接口
/// </summary>
public interface AbstractDbFactory
{
/// <summary>
/// 建立默認連接
/// </summary>
/// <returns>數據庫連接</returns>
IDbConnection CreateConnection();

/// <summary>
/// 根據連接字符串建立Connection對象
/// </summary>
/// <param name="strConn">連接字符串</param>
/// <returns>Connection對象</returns>
IDbConnection CreateConnection(string strConn);

/// <summary>
/// 建立Command對象
/// </summary>
/// <returns>Command對象</returns>
IDbCommand CreateCommand();

/// <summary>
/// 建立DataAdapter對象
/// </summary>
/// <returns>DataAdapter對象</returns>
IDbDataAdapter CreateDataAdapter();

/// <summary>
/// 根據Connection建立Transaction
/// </summary>
/// <param name="myDbConnection">Connection對象</param>
/// <returns>Transaction對象</returns>
IDbTransaction CreateTransaction(IDbConnection myDbConnection);

/// <summary>
/// 根據Command建立DataReader
/// </summary>
/// <param name="myDbCommand">Command對象</param>
/// <returns>DataReader對象</returns>
IDataReader CreateDataReader(IDbCommand myDbCommand);

/// <summary>
/// 獲得連接字符串
/// </summary>
/// <returns>連接字符串</returns>
string GetConnectionString();
}
}


(2)Factory.cs

using System;
using System.Configuration;

namespace DbService
{
/// <summary>
/// Factory類
/// </summary>
public sealed class Factory
{
private static volatile Factory singleFactory = null;
private static object syncObj = new object();
/// <summary>
/// Factory類構造函數
/// </summary>
private Factory()
{
}

/// <summary>
/// 獲得Factory類的實例
/// </summary>
/// <returns>Factory類實例</returns>
public static Factory GetInstance()
{
if(singleFactory == null)
{
lock(syncObj)
{
if(singleFactory == null)
{
singleFactory = new Factory();
}
}
}
return singleFactory;
}

/// <summary>
/// 建立Factory類實例
/// </summary>
/// <returns>Factory類實例</returns>
public AbstractDbFactory CreateInstance()
{
AbstractDbFactory abstractDbFactory = null;
switch(ConfigurationSettings.AppSettings["DatabaseType"].ToLower())
{
case "sqlserver":
{
abstractDbFactory = new SqlFactory();
break;
}
case "oledb":
{
abstractDbFactory = new OleDbFactory();
break;
}
case "odbc":
{
abstractDbFactory = new OdbcFactory();
break;
}
}
return abstractDbFactory;
}
}
}


待續......

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 阿合奇县| 怀安县| 鄢陵县| 龙州县| 平湖市| 灵丘县| 望奎县| 紫云| 黄平县| 太谷县| 永兴县| 辽宁省| 延吉市| 崇仁县| 抚顺县| 黎城县| 越西县| 车致| 尼勒克县| 新田县| 东兴市| 弋阳县| 锡林浩特市| 微山县| 随州市| 邯郸市| 宜都市| 武宣县| 思茅市| 澄迈县| 资源县| 信宜市| 大庆市| 济阳县| 济南市| 诸城市| 东台市| 高邮市| 兴宁市| 南澳县| 仁布县|