資料訪問層設計 多庫操作 (1)

2021-04-12 19:29:16 字數 3157 閱讀 7268

以前設計,無法實現多資料庫操作,本次修改做了部分改動,尤其配置檔案,加了自定義配置節來處理多資料庫 

只貼出修改的關鍵**,及配置處理,配置樣式

關於介面設計等其它相關**,請參見以前寫的〈資料訪問層設計〉

1/資料庫配置類,管理引數等

using system;

using system.collections;

namespace hkh.database.type

}///

/// 配置名稱

///

internal string configname

set}

///

/// 是否預設資料庫

///

internal bool isdefault

set}

///

/// 獲取dao類型別

///

internal string daoclass

set}

///

/// 獲取dba類型別

///

internal string dbclass

set}

///

/// 獲取引數集合

///

public clsconnparam connparam

}#endregion

#region 私有方法

#endregion

#region 建構函式

///

/// 建構函式

///

public clsdatabaseconfig()

#endregion

}///

/// 資料庫連線引數集合

///

public class clsconnparam

///

/// 連線引數索引器

///

public string this[object index]

set}

///

/// 獲取引數總數

///

public int count

}///

/// 新增新引數

///

///

///

public void add ( object key,object value )

///

/// 刪除引數

///

///

public void remove ( object key )

///

/// 測試是否存在特定的引數

///

///

///

public bool containsparam(object key)

///

/// 生成連線字串

///

/// 連線字串

internal string toconnectionstring()}}

2、資料訪問配置類,管理多資料庫配置

using system;

using system.data;

using system.xml;

using system.collections;

using system.configuration;

using hkh.database;

using hkh.database.type;

namespace hkh.database.config

return m_defaultdbsetting;

}set

}///

/// 獲取引數總數

///

public int dbconfigcount

}#endregion

#region 公共方法

///

/// 獲取預設配置

///

///

public clsdatabaseconfig getdbconfig()

if ( null == m_defaultdbsetting || "" == m_defaultdbsetting.trim() )

throw new exception("沒有配置預設資料庫!");

return (clsdatabaseconfig)m_dbsettings[m_defaultdbsetting];

}catch(exception ex)

}///

/// 獲取配置

///

///

///

public clsdatabaseconfig getdbconfig(string strconfigname)

return (clsdatabaseconfig)m_dbsettings[strconfigname];

}catch(exception ex)

}///

/// 新增新配置

///

///

///

public void addconfig ( object key,object value )

///

/// 刪除配置

///

///

public void removeconfig ( object key )

///

/// 是否存在特定的配置

///

///

///

public bool containsconfig(object key)

#endregion

///

/// 私有構造

///

private clsdbaccessconfig()

///

/// 對外提供自身例項

///

///

public static clsdbaccessconfig getinstance()

#region 私有方法

///

/// 讀取配置檔案

///

///

private void readdbconfig()

catch (exception ex)

}#endregion}}

資料庫訪問層

using system using system.data.sqlclient namespace dbcontrol setpublic sqlconnection sqlconnectionstring public string xmlconnectionstring set public ...

資料庫訪問層設計與實現(2)

2 約定 1 本文中談及的資料庫僅限於關聯式資料庫。資料庫型別 指不同的關係資料庫系統,如 oracle sql server sybase 等等。2 資料庫物件 指ado.net 中訪問資料庫的物件 connection 物件,command 物件,adapter 物件 parameter 物件。...

PDO資料庫訪問抽象層

pdo建構函式說明 dsn資料來源名稱,包括主機名埠號和資料庫名稱 username資料庫使用者名稱 password 密碼 driver options連線資料庫的其他選項 pdo是比mysql更高效,資料庫遷移時基本不用更改太多的 sql語句 pdo exec 返回sql語句後受影響的行數 qu...