有时要为每一篇文章统计其点击次数,如果每一次浏览都要更新一次库的话,那性能在访问量很大的情况下,服务器的压力就会很大了,比较好一点的方法就是先将要更新的数据缓存起来,然后每隔一段时间再利用数据库的批量处理,批量更新库。源码如下:
CountBean.java
package
public
private
int
public
public
this.countType=countTypes;
}
public
this.countId=countIds;
}
public
return
}
public
return
}
}
CountCache.java
package
import
public
public
public
public
if(cb!=null){
list.add(cb);
}
}
}
CountControl.java
package
import
import
public
private
private
public
public
Connection
PreparedStatement
try{
conn
conn.setAutoCommit(false);
ps=conn.prepareStatement("update
for(int
CountBean
CountCache.list.removeFirst();
ps.setInt(1,
ps.executeUpdate();⑴
//ps.addBatch();⑵
}
//int
conn.commit();
}catch(Exception
e.printStackTrace();
}
try{
if(ps!=null)
ps.clearParameters();
ps.close();
ps=null;
}
}catch(SQLException
DBUtils.closeConnection(conn);
}
}
public
return
}
public
long
if
//System.out.print("lastExecuteTime:"+lastExecuteTime);
//System.out.print("
//
lastExecuteTime=now;
executeUpdate();
}
else{
//System.out.print("wait
}
}
}
//注:如果你的数据库驱动支持批处理,那么可以将⑵,⑶标记的代码前的注释去掉,同时在代码⑴前加上注释
类写好了,下面是在JSP中如下调用。
<%
CountBean
cb.setCountId(Integer.parseInt(request.getParameter("cid")));
CountCache.add(cb);
out.print(CountCache.list.size()+"<br>");
CountControl
c.run();
out.print(CountCache.list.size()+"<br>");
%>
JSP高访问量下的计数程序
最新推荐文章于 2020-04-16 13:54:22 发布