以前設計,無法實現多資料庫操作,本次修改做了部分改動,尤其配置檔案,加了自定義配置節來處理多資料庫
只貼出修改的關鍵**,及配置處理,配置樣式
關於介面設計等其它相關**,請參見以前寫的〈資料訪問層設計〉
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...