chx 学习jForum笔记五-参数表的操作

2010.12.7 继续查找关键字MostUsersEverOnline

仍然是在net.jforum.repository/ForumRepository.java中

    public static MostUsersEverOnline getMostUsersEverOnline()
    {
        MostUsersEverOnline online = (MostUsersEverOnline)cache.get(FQN, MOST_USERS_ONLINE);  //从缓存中取峰值人数
        if (online == null) { //缓存中没有
            online = instance.loadMostUsersEverOnline (DataAccessDriver.getInstance().newConfigDAO()); //从数据表读取峰值人数信息
        }
        return online;
    }

 

    private synchronized MostUsersEverOnline loadMostUsersEverOnline(ConfigDAO cm) //从数据表读取峰值人数信息
    {
        Config config = cm.selectByName (ConfigKeys.MOST_USERS_EVER_ONLINE); //从数据表读取同时在线人数
        MostUsersEverOnline mostUsersEverOnline = new MostUsersEverOnline();
        if (config != null) {
            mostUsersEverOnline.setTotal(Integer.parseInt(config.getValue ())); //设置峰值人数
            // We're assuming that, if we have one key, the another one
            // will always exist
            config = cm.selectByName (ConfigKeys.MOST_USER_EVER_ONLINE_DATE);  //从数据表读取峰值时间
            mostUsersEverOnline.setTimeInMillis(Long.parseLong(config.getValue ())); //设置峰值时间
        }
        cache.add(FQN, MOST_USERS_ONLINE, mostUsersEverOnline); //将峰值人数及时间写入缓存
        return mostUsersEverOnline;
    }

 

所以从以上句子中得知,程序用到了一个配置数据表。用法应该是这样滴:

ConfigDAO cm = DataAccessDriver.getInstance().newConfigDAO();
Config config = cm.selectByName("参数名称")
值 = config.getValue()
 

 

下面继续看如何设置这个峰值人数

 

    public static void updateMostUsersEverOnline(MostUsersEverOnline m) //设置峰值人数
    {
        ConfigDAO cm = DataAccessDriver.getInstance().newConfigDAO();  //取参数表
        Config config = cm.selectByName(ConfigKeys.MOST_USERS_EVER_ONLINE); //取参数
        if (config == null) { //参数表中未取到参数
            // Total 参数〔峰值人数〕操作
            config = new Config();
            config.setName(ConfigKeys.MOST_USERS_EVER_ONLINE); //设置参数名称
            config.setValue(Integer.toString(m.getTotal()));   //设置参数值
            cm.insert(config); //将参数记入表中
            // Date  参数〔峰值发生时间〕操作
            config.setName(ConfigKeys.MOST_USER_EVER_ONLINE_DATE);//设置参数名称
            config.setValue(Long.toString(m.getTimeInMillis())); //设置参数值
            cm.insert(config); //将参数记入表中
        }
        else {
            // Total 参数〔峰值人数〕操作
            config.setValue(Integer.toString(m.getTotal())); //设置参数值
            cm.update(config); //将参数记入表中
            // Date 参数〔峰值发生时间〕操作
            config.setName(ConfigKeys.MOST_USER_EVER_ONLINE_DATE); //取参数
            config.setValue(Long.toString(m.getTimeInMillis())); //设置参数值
            cm.update(config); //将参数记入表中
        }
       
        cache.add(FQN, MOST_USERS_ONLINE, m); //修改缓存中的值
    }

所以设置是这样

ConfigDAO cm = DataAccessDriver.getInstance().newConfigDAO();
Config config = cm.selectByName("参数名称")
        if (config == null) { //参数表中未取到参数
            config = new Config();
            config.setName("参数名称"); //设置参数名称
            config.setValue(值)
            cm.insert(config); //将参数记入表中
         }
         else {
            config.setValue(值)
            cm.update(config); //将参数记入表中
         }
 

 

你可能感兴趣的:(jForum)