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

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

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

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

更新時(shí)間:2022-06-28 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

用C#實(shí)現(xiàn)的數(shù)據(jù)庫抽象工廠(一)

最近學(xué)習(xí)了一下設(shè)計(jì)模式,便嘗試用C#對(duì)數(shù)據(jù)庫的訪問操作采用抽象工廠的模式實(shí)現(xiàn)一下,其中與標(biāo)準(zhǔn)的模式略有不同,加入了一些自己的想法,希望大家批評(píng)指正,代碼共分為6個(gè)類:

(1)AbstractDbFactory.cs

using System;
using System.Data;

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

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

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

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

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

/// <summary>
/// 根據(jù)Command建立DataReader
/// </summary>
/// <param name="myDbCommand">Command對(duì)象</param>
/// <returns>DataReader對(duì)象</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類構(gòu)造函數(shù)
/// </summary>
private Factory()
{
}

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

/// <summary>
/// 建立Factory類實(shí)例
/// </summary>
/// <returns>Factory類實(shí)例</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;
}
}
}


待續(xù)......

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 东乡| 乐业县| 鲁山县| 枣阳市| 修武县| 新源县| 雅安市| 永登县| 石泉县| 屏东市| 固原市| 永清县| 昌乐县| 安阳市| 云龙县| 景泰县| 望奎县| 碌曲县| 柳州市| 揭东县| 堆龙德庆县| 土默特左旗| 保山市| 尉氏县| 宜阳县| 九江市| 郴州市| 安图县| 南靖县| 巴中市| 静乐县| 东源县| 太康县| 襄汾县| 台中县| 光泽县| 西乌珠穆沁旗| 崇仁县| 南京市| 县级市| 天水市|