- 浏览: 45265 次
- 性别:
- 来自: 无锡
最新评论
-
RainWu:
...
chx 学习jForum笔记十四 数据表四 jforum_groups及jforum_user_groups -
c_huabo:
这都被你发现了!!!
chx 学习jForum笔记十七 实现中文搜索 -
beermonkey:
感谢啊。。。。
chx 学习jForum笔记十七 实现中文搜索
2010.12.9接上午。继续看net.jforum.view.forum/ForumAction.java中public void list() 中的
this.context.put("totalMessages", Integer.valueOf(ForumRepository.getTotalMessages ()));//页面显示的总文章数
this.context.put("totalRegisteredUsers", ForumRepository .totalUsers ()); //页面显示的总注册人数
his.context.put("lastUser", ForumRepository.lastRegisteredUser ()); //页面显示的最后注册用户
(完整内容在笔记六中)
net.jforum.repository/ForumRepository.java中
public static int getTotalMessages()
{
return getTotalMessages
(false);
}
public static int getTotalMessages(boolean fromDb)
{
Integer i = (Integer)cache.get(FQN, TOTAL_MESSAGES); //取缓存中的内容
int total = i != null ? i.intValue() : 0; //初始值,缓存中的值或0
if (fromDb || total == 0) { //需要从数据表中取或缓存中无值
total = DataAccessDriver.getInstance().newForumDAO().getTotalMessages
(); //从数据表中取
cache.add(FQN, TOTAL_MESSAGES, Integer.valueOf(total)); //写入缓存中
}
return total; //返回值
}
net.jforum.dao.generic/GenericForumDAO.java
public int getTotalMessages()
{
int totalMessages = 0;
PreparedStatement pstmt = null;
ResultSet resultSet = null;
try {
pstmt = JForumExecutionContext.getConnection().prepareStatement(
SystemGlobals.getSql("ForumModel.totalMessages"));
//SELECT COUNT(1) as total_messages FROM jforum_posts WHERE need_moderate = 0
//所有不需审查的帖子总数
resultSet = pstmt.executeQuery();
if (resultSet.next()) {
totalMessages = resultSet.getInt("total_messages");
}
return totalMessages;
}
catch (SQLException e) {
throw new DatabaseException(e);
}
finally {
DbUtils.close(resultSet, pstmt);
}
}
下面看总注册人数
net.jforum.repository/ForumRepository.java中
public static Integer totalUsers()
{
return (Integer)cache.get(FQN, TOTAL_USERS);
//从缓存中取
}
那么哪里是写入缓存的呢?有以下两个地方:
public static void incrementTotalUsers() //增加注册人数
{
Integer i = (Integer)cache.get(FQN, TOTAL_USERS); //从缓存中取当前注册人数
if (i == null) {
i = Integer.valueOf(0);
}
cache.add(FQN, TOTAL_USERS, Integer.valueOf(i.intValue() + 1)); //总人数加一并写入缓存
}
private void loadUsersInfo() //取最后注册用户信息及注册用户总人数
{ //直接从数据表读取并写入缓存
UserDAO udao = DataAccessDriver.getInstance().newUserDAO();
cache.add(FQN, LAST_USER, udao.getLastUserInfo());
cache.add(FQN, TOTAL_USERS, Integer.valueOf(udao.getTotalUsers
()));
//从数据表读出总注册人数并写入缓存
}
net.jforum.dao.generic/GenericUserDAO.java
public int getTotalUsers()
{ //从数据表读出总注册人数
PreparedStatement preparedStatement = null;
try {
preparedStatement = JForumExecutionContext.getConnection().prepareStatement(
SystemGlobals.getSql("UserModel.totalUsers")); //取SQL语句
//SELECT COUNT(1) as total_users FROM jforum_users
return this.getTotalUsersCommon(preparedStatement);
}
catch (SQLException e) {
throw new DatabaseException(e);
}
finally {
DbUtils.close(preparedStatement);
}
}
总注册人数至此结束。下面看最后注册用户。
跟总人数一样,在net.jforum.repository/ForumRepository.java中,也是从缓存中读取的。
public static User lastRegisteredUser()
{
return (User)cache.get(FQN, LAST_USER);
}
在哪里写入的呢?两处,一处是set,另一处是load。
public static void setLastRegisteredUser(User user)
{
cache.add(FQN, LAST_USER, user);
}
private void loadUsersInfo() //取最后注册用户信息及注册用户总人数
{ //直接从数据表读取并写入缓存
UserDAO udao = DataAccessDriver.getInstance().newUserDAO();
cache.add(FQN, LAST_USER, udao.getLastUserInfo
());
cache.add(FQN, TOTAL_USERS, Integer.valueOf(udao.getTotalUsers())); //从数据表读出总注册人数并写入缓存
}
先看LOAD
net.jforum.dao.generic/GenericUserDAO.java
public User getLastUserInfo()
{ //从数据表中取最后注册的用户姓名与ID
PreparedStatement p = null;
ResultSet rs = null;
try {
User user = new User();
p = JForumExecutionContext.getConnection().prepareStatement(
SystemGlobals.getSql("UserModel.lastUserRegistered")); //取SQL语句
//SELECT TOP 1 user_id, username FROM jforum_users ORDER BY user_regdate DESC
rs = p.executeQuery();
rs.next();
user.setUsername(rs.getString("username")); //用户名
user.setId(rs.getInt("user_id")); //用户ID
return user;
}
catch (SQLException e) {
throw new DatabaseException(e);
}
finally {
DbUtils.close(rs, p);
}
}
再看SET。
setLastRegisteredUser
有两处调用
net.jforum.sso/SSOUtils.java中的public void register(final String password, final String email)
及net.jforum.view.forum/UserAction.java中的registrationComplete()
看来这两处是用户注册模块。
小结:本段分析最终注册用户的信息与总注册人数的获取、修改。并发现两个用户注册模块,前一段发现的是认证模块。
发表评论
-
chx 学习jForum笔记十九 jForum定时作业
2011-02-25 15:43 974参照jforum原有的两个定时作业SummarySchedul ... -
chx 学习jForum笔记十八 jForum与ms sqlserver
2011-02-23 16:39 7366jForum的原生数据库是mysql,但对sqlserver也 ... -
chx 学习jForum笔记十七 实现中文搜索
2011-02-23 16:04 1422最初测试的时候中文搜索一直都不成功。所以以为要对源程序进行大幅 ... -
chx 学习jForum笔记十六 实现附件移植,添加附件时按钮无效的问题解决
2011-02-23 15:59 3036==背景== 原论坛附件存放于d:\res\cibfo ... -
chx 学习jForum笔记十五 实现用户及用户组同步
2011-02-23 15:25 1689==背景== 原先有一个随时维护的用户表rswk、权限表ci ... -
chx 学习jForum笔记十四 数据表四 jforum_groups及jforum_user_groups
2011-02-14 14:07 1436jforum_groups group_id ... -
chx 学习jForum笔记十三 数据表三 jforum_roles及jforum_role_values
2011-02-12 16:19 1259jforum_roles 权限表。是一张组与基本权限的对应表。 ... -
chx 学习jForum笔记十二 数据表二 jforum_categories及jforum_forums
2011-02-12 15:05 1324jforum_categories是子论坛的分类以下称为栏目。 ... -
chx 学习jForum笔记十一 实现单点登录SSO
2011-02-09 11:55 1946分为三部分: 1.导入原用户数据库. 2.修改SSO模块, ... -
chx 学习jForum笔记十 数据表一 jforum_users
2011-02-09 10:35 1241user_id bigint ... -
chx 学习jForum笔记八-ForumAction三,发现用户认证模块。
2010-12-09 11:15 16842010.12.9。接昨天 在net.jforum.view ... -
chx 学习jForum笔记七-ForumAction二
2010-12-08 17:24 11432010.12.8 接昨天。 下面这句是存在于net.jfo ... -
chx 学习jForum笔记六-MostUsersEverOnline的结束及ForumAction-list的开始
2010-12-07 15:54 22442010.12.7 继续查找关键字MostUsersEverO ... -
chx 学习jForum笔记五-参数表的操作
2010-12-07 15:05 9742010.12.7 继续查找关键字MostUsersEverO ... -
chx 学习jForum笔记四
2010-12-06 15:21 9632010.12.6 接上午。在net.jforum.repos ... -
chx 学习jForum笔记三
2010-12-06 14:05 10012010.12.6 接上周日,继续。PermissionCon ... -
chx 学习jForum笔记二
2010-12-05 10:26 1200我的源程序是安道森练 ... -
chx 学习jForum笔记一
2010-12-05 09:37 1646目标:jForum二次开发,读懂源程序。 修改权限管理模块, ...
相关推荐
NULL 博文链接:https://caihexi.iteye.com/blog/919868
北大计算机系高级计算机系统结构课件chx14-arch07-MT1
CHX-I防火墙官方教程-附带翻译终稿.pdf
1. Data dependences (also called true data dependences) 2. name dependences 3. c
HA-SoftEther-CHX虚拟专网HA-SoftEther-CHX虚拟专网HA-SoftEther-CHX虚拟专网HA-SoftEther-CHX虚拟专网
北京大学计算机科学技术系计算机系统结构教研室高等计算机系统结构(第九讲)2014年5月12日程 旭多处理器系统北京大学计算机科学技术系计算机系统结构教研室197
1. 驱动位线(bit) 2. 选择行 1. 对两条位线预充电,使得bitVdd 2. 选择行 3. 存储单元将一条线拉为低 4. 列上的信号放大器检测 bit
北京大学微处理器研究开发中心(第六讲)2014年4月21日程 旭基于静态调度的ILP高等计算机系统结构北京大学微处理器研究开发中心复习: 先进超标量技术°简单的
北京大学微处理器研究开发中心计算机系统结构研究所高等计算机系统结构(第五讲)2014年4月21日程 旭现代指令级并行技术北京大学微处理器研究开发中心计算机系统结
1. Instruction status—which of 4 steps the instruction is in 2. Functional unit
1.5% 1.4B Transistors 2.75B Transistors
使用基于密度泛函理论(DFT)的Cast叩量子力学计算程序模块,对CHX(X=0-4)在Y-AI2O3(ll0D)表面吸附的位置,空间结构和能量进行了理论计算。计算结果表明.CHx=(x=0-3)与表面形成强的相互作用。CH3,CH2物种处于表面八面体...
CHX-I防火墙官方教程-附带翻译借鉴.pdf
采用密度泛函理论与周期平板模型相结合的方法,对物种CHx(x=2-4)在Co(111)表面的top,fcc,hcp 和 bridge位的吸附模型进行了结构优化、能量计算,得到了各物种较有利的吸附位;并对最佳吸附位进行密立根电荷和总态密度...
chx99个人主页源码_chx99
这是生物方面的资源,不感兴趣的人不建议下载
本软件是一个模似网卡和集线器的工具,可以模似集线器功能,实现VPN的功能。使得系统把此软件识别成一块网卡,有了这个东西,只要可以访问外网,都可以连接到虚拟HUB上与其他电脑组成局域网,在此虚拟的局域...
CHX-3大手臂大法兰.SLDDRW
工控软件,要求联网才能使用,否则就运行不下去。虚拟网卡正是解决无实际网卡的困扰。
CHX是C ++嵌入HTML扩展,就像JSP是Java嵌入的一样。 这是CHX到C ++的源代码转换器。