/// <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);
        }
Beispiel #3
0
        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());
        }