/// <summary> /// 打开新数据库 /// </summary> /// <param name="name">数据库Key值</param> /// <returns></returns> public IDBHelper GetDbHelper(string name = "mySQL") { if (!dbDiction.ContainsKey(name)) { AddDiction(name); } DBToolModel dbtool = dbDiction[name]; IDBHelper dbHelper = InitDb(dbtool); return(dbHelper); }
public DBToolModel Add(string name, string dbDLLName, string dbConnString, string providerName) { DBToolModel dbtool = new DBToolModel(name, dbDLLName, dbConnString, providerName); IDBHelper dbHelper = InitDb(dbtool); if (!dbDiction.ContainsKey(name)) { dbDiction.Add(name, dbtool); } return(dbtool); }
/// <summary> /// 内部连接数据库 /// </summary> /// <param name="dbtool"></param> /// <returns></returns> private static IDBHelper InitDb(DBToolModel dbtool) { if (dbtool == null) { return(null); } try { //是否达到队列上限 if (dbtool.dbHelperQueue.Count == dbtool.queueNum) { return(dbtool.dbHelperQueue.Dequeue()); } if (dbtool.assembly == null) { string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin", dbtool.dbDLLPath); Assembly assembly = Assembly.LoadFile(filePath); //保存 dbtool.assembly = assembly; } //连接数据库 IDBHelper dbHelper = (IDBHelper)dbtool.assembly.CreateInstance(dbtool.providerName); dbHelper.initConnectString(dbtool.dbConnString); SystemLogger.getLogger().Info(dbtool.name + "数据库初始化成功"); if (dbHelper != null) { dbtool.dbHelperQueue.Enqueue(dbHelper); } return(dbHelper); } catch (Exception ex) { SystemLogger.getLogger().Error("反射初始化数据库失败!", ex); } return(null); }