//------------------------------------------------------------------------------------- DBInterface* DBUtil::createInterface(const std::string& name, bool showinfo) { DBInterfaceInfo* pDBInfo = g_kbeSrvConfig.dbInterface(name); if (!pDBInfo) { ERROR_MSG(fmt::format("DBUtil::createInterface: not found dbInterface({})\n", name)); return NULL; } DBInterface* dbinterface = NULL; if (strcmp(pDBInfo->db_type, "mysql") == 0) { dbinterface = new DBInterfaceMysql(name.c_str(), pDBInfo->db_unicodeString_characterSet, pDBInfo->db_unicodeString_collation); } else if (strcmp(pDBInfo->db_type, "redis") == 0) { dbinterface = new DBInterfaceRedis(name.c_str()); } if(dbinterface == NULL) { ERROR_MSG(fmt::format("DBUtil::createInterface: create db_interface error! type={}\n", pDBInfo->db_type)); return NULL; } kbe_snprintf(dbinterface->db_type_, MAX_BUF, "%s", pDBInfo->db_type); dbinterface->db_port_ = pDBInfo->db_port; kbe_snprintf(dbinterface->db_ip_, MAX_IP, "%s", pDBInfo->db_ip); kbe_snprintf(dbinterface->db_username_, MAX_BUF, "%s", pDBInfo->db_username); dbinterface->db_numConnections_ = pDBInfo->db_numConnections; kbe_snprintf(dbinterface->db_password_, MAX_BUF, "%s", pDBInfo->db_password); if (!dbinterface->attach(pDBInfo->db_name)) { ERROR_MSG(fmt::format("DBUtil::createInterface: attach to database failed!\n\tdbinterface={0:p}\n\targs={1}\n", (void*)&dbinterface, dbinterface->c_str())); delete dbinterface; return NULL; } else { if(showinfo) { INFO_MSG(fmt::format("DBUtil::createInterface[{0:p}]: {1}\n", (void*)&dbinterface, dbinterface->c_str())); } } return dbinterface; }
//------------------------------------------------------------------------------------- DBInterface* DBUtil::createInterface(bool showinfo) { ENGINE_COMPONENT_INFO& dbcfg = g_kbeSrvConfig.getDBMgr(); DBInterface* dbinterface = NULL; if(strcmp(dbcfg.db_type, "mysql") == 0) { dbinterface = new DBInterfaceMysql(dbcfg.db_unicodeString_characterSet, dbcfg.db_unicodeString_collation); } else if(strcmp(dbcfg.db_type, "redis") == 0) { dbinterface = new DBInterfaceRedis(); } if(dbinterface == NULL) { ERROR_MSG(fmt::format("DBUtil::createInterface: create db_interface error! type={}\n", dbcfg.db_type)); return NULL; } kbe_snprintf(dbinterface->db_type_, MAX_BUF, "%s", dbcfg.db_type); dbinterface->db_port_ = dbcfg.db_port; kbe_snprintf(dbinterface->db_ip_, MAX_IP, "%s", dbcfg.db_ip); kbe_snprintf(dbinterface->db_username_, MAX_BUF, "%s", dbcfg.db_username); dbinterface->db_numConnections_ = dbcfg.db_numConnections; kbe_snprintf(dbinterface->db_password_, MAX_BUF, "%s", dbcfg.db_password); if(!dbinterface->attach(DBUtil::dbname())) { ERROR_MSG(fmt::format("DBUtil::createInterface: attach to database failed!\n\tdbinterface={0:p}\n\targs={1}\n", (void*)&dbinterface, dbinterface->c_str())); delete dbinterface; return NULL; } else { if(showinfo) { INFO_MSG(fmt::format("DBUtil::createInterface[{0:p}]: {1}\n", (void*)&dbinterface, dbinterface->c_str())); } } return dbinterface; }
//------------------------------------------------------------------------------------- DBInterface* DBUtil::createInterface(bool showinfo) { ENGINE_COMPONENT_INFO& dbcfg = g_kbeSrvConfig.getDBMgr(); DBInterface* dbinterface = NULL; if(strcmp(dbcfg.db_type, "mysql") == 0) { dbinterface = new DBInterfaceMysql; } kbe_snprintf(dbinterface->db_type_, MAX_BUF, "%s", dbcfg.db_type); dbinterface->db_port_ = dbcfg.db_port; kbe_snprintf(dbinterface->db_ip_, MAX_IP, "%s", dbcfg.db_ip); kbe_snprintf(dbinterface->db_username_, MAX_BUF, "%s", dbcfg.db_username); kbe_snprintf(dbinterface->db_password_, MAX_BUF, "%s", dbcfg.db_password); dbinterface->db_numConnections_ = dbcfg.db_numConnections; if(dbinterface == NULL) { ERROR_MSG("DBUtil::createInterface: can't create dbinterface!\n"); return NULL; } if(!dbinterface->attach(DBUtil::dbname())) { ERROR_MSG("DBUtil::createInterface: can't attach to database!\n\tdbinterface=%p\n\targs=%s", &dbinterface, dbinterface->c_str()); delete dbinterface; return NULL; } else { if(showinfo) { INFO_MSG("DBUtil::createInterface[%p]: %s\n", &dbinterface, dbinterface->c_str()); } } return dbinterface; }