仍然是在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()
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); //将参数记入表中
- }