/// <summary> /// 根据DBID获取数据库访问连接池对象 /// </summary> /// <param name="dbid">数据库编号ID</param> /// <returns>数据库访问连接对象</returns> internal static DbConnectionPool GetConnectionPoolByDBID(int dbid) { DbConnectionPool dbConnectionPool; if (!_dbConnectionPoolDic.TryGetValue(dbid, out dbConnectionPool)) { var config = DatabaseConfigManager.GetConfig(dbid); IDBFactory dbFactory = DBFactoryManager.GetDBFactory(config); IDBInteraction dbInteraction = dbFactory.GetDBInteraction(); AddDbConnectionPool(config, dbInteraction); if (!_dbConnectionPoolDic.TryGetValue(dbid, out dbConnectionPool)) { throw new ApplicationException(string.Format("连接池中不包含数据库编号ID为:{0}的连接信息", dbid)); } } return(dbConnectionPool); }
/// <summary> /// 获取数据库访问实例 /// </summary> /// <param name="dbid">数据库编号ID</param> /// <returns>数据库访问实例</returns> public static IDBAccess GetDBAccessInstance(int dbid) { IDBAccess dbAccess; if (!_dbAccessDic.TryGetValue(dbid, out dbAccess)) { lock (_dicDBAccessLock) { if (!_dbAccessDic.TryGetValue(dbid, out dbAccess)) { var dbBConfigItem = DatabaseConfigManager.GetConfig(dbid); IDBFactory dbFactory = DBFactoryManager.GetDBFactory(dbBConfigItem); dbAccess = dbFactory.CreateDBAccess(dbBConfigItem); if (!_dbAccessDic.TryAdd(dbid, dbAccess)) { Loger.Warn(string.Format("添加数据库编号ID为{0}数据库访问实例失败", dbid), null); } } } } return(dbAccess); }
/// <summary> /// 加载指定路径数据库插件 /// </summary> /// <param name="pluginAssemblyPath">数据库插件Assembly路径</param> public static void LoadDBPlugin(string pluginAssemblyPath) { DBFactoryManager.LoadDBPlugin(pluginAssemblyPath); }
/// <summary> /// 获取字段值格式化对象 /// </summary> /// <param name="config">数据配置</param> /// <returns></returns> public static ISqlFieldValueFormator GetFieldValueFormator(DatabaseConfig config) { return(DBFactoryManager.GetSqlFieldValueFormator(config)); }