国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:19:45
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!

用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;
}
}
}


待續......

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔西| 日土县| 平顶山市| 沭阳县| 自贡市| 麻栗坡县| 嘉峪关市| 永安市| 绥江县| 集安市| 仙游县| 浏阳市| 永定县| 监利县| 米脂县| 饶阳县| 仁化县| 富蕴县| 宁陕县| 太康县| 景德镇市| 太原市| 汉中市| 定陶县| 神池县| 乐陵市| 迁西县| 内乡县| 陆丰市| 河东区| 宝山区| 富民县| 大兴区| 巩留县| 灯塔市| 东港市| 合山市| 平阴县| 合阳县| 靖安县| 武邑县|