/// <summary> /// 根据数据库名创建主操作器 /// </summary> /// <param name="dbName">数据库名</param> /// <returns>数据库操作器</returns> public static BaseDbOperator CreateMainOperatorByName(string dbName) { if (dbName == DatabaseType.mysql.ToString()) { DbLangConfig config = DbManager.GetDbConfiguration(dbName); return(Create(config)); } throw new NotImplementedException("Db operator not implemented: " + dbName); }
/// <summary> /// 创建数据库操作器 /// </summary> /// 执行用户代码时应该使用由主操作器分配的无特权用户 public static BaseDbOperator Create(DbLangConfig dbConfig) { string connString = dbConfig.ConnectionString; DbDriver driver = DbDriverLoader.Load(dbConfig.DriverPath); if (dbConfig.Name == DatabaseType.mysql.ToString()) { return(new MySqlOperator(connString, driver)); } throw new NotImplementedException("Db operator not implemented: " + dbConfig.Name); }
private BaseDbOperator CreateJudgeEnv(string input) { MainOperator.CreateDatabase(_dbName); MainOperator.CreateUser(_dbUser, _dbPassword); MainOperator.GeneratePrivileges(_dbName, _dbUser); DbLangConfig dbConfig = DbManager.GetDbConfiguration(JudgeTask.Language); dbConfig.Database = _dbName; dbConfig.User = _dbUser; dbConfig.Password = _dbPassword; BaseDbOperator userOper = DbOperatorFactory.Create(dbConfig); userOper.InitDatabase(input); return(userOper); }
private static DbLangConfig[] GetDefaultDbLangConfigs() { List <DbLangConfig> langConfigs = new List <DbLangConfig>(); DbLangConfig mysql = new DbLangConfig { Name = "mysql", IsDbConfig = true, DriverPath = "Pomelo.Data.MySql.dll", Server = "localhost", Database = "judger", User = "******", Password = "******", ConnStringTemplate = "Server=<Server>;Database=<Database>;User=<User>;Password=<Password>;CharSet=utf8;" }; langConfigs.Add(mysql); return(langConfigs.ToArray()); }