package com.chen;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
public class VisitorCounter {
private final static String TABLE_NAME = "demo";
private static String today = null;
private static long today_num = 0;
private static long total_num = 0;
// 加载访问量
public static void loadNum() {
if (total_num < 1)
loadTotalNum();
if (today_num < 1)
loadToadyNum();
}
// 加载今日访问量
private static void loadToadyNum() {
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if (today == null)
today = getTodayDate();
String sql = "select vnum from " + TABLE_NAME + " where vdate='"
+ today + "'";
try {
db = new DBConnect(sql);
rs = db.pst.executeQuery();//执行语句,得到结果集
if (rs.next()) {
today_num = rs.getLong("vnum");
} else {
sql = "insert into " + TABLE_NAME + "(vdate,vnum) values('"
+ today + "',0)";
db.pst.executeUpdate(sql);
today_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
today_num = 0;
System.out
.println("com.hdzx.pub~VisitorCounter.incTotalCounter:获得访问人数");
}
}
// 加载总访问量
private static void loadTotalNum() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if (today == null)
today = getTodayDate();
String sql = "select vnum from " + TABLE_NAME + " where id=1";
try {
db = new DBConnect(sql);
rs = db.pst.executeQuery();//执行语句,得到结果集
if (rs.next()) {
total_num = rs.getLong("vnum");
} else {
total_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
total_num = 0;
System.out
.println("com.hdzx.pub~VisitorCounter.incTotalCounter:获得访问人数");
}
}
// 增加总的访问量
private static int incTotalCounter() {
int k = 0;
DBConnect db = null;
loadNum();
total_num = total_num + 1;
String sql = "update " + TABLE_NAME + " set vnum=" + total_num
+ " where id=1";
try {
db = new DBConnect(sql);
k = db.pst.executeUpdate(sql);
} catch (Exception e) {
// TODO: handle exception
System.out
.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加访问人数");
}
return k;
}
// 增加今日的访问量
public static int incTodayCounter() {
int k = 0;
DBConnect db = null;
String sql = null;
loadNum();
today_num += 1;
sql = "update " + TABLE_NAME + " set vnum=" + today_num
+ " where vdate='" + today + "'";
try {
db = new DBConnect(sql);
k = db.pst.executeUpdate(sql);
if (k > 0)
incTotalCounter();
} catch (Exception e) {
// TODO: handle exception
System.out
.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加访问人数");
}
return k;
}
// 获得今天的日期
private static String getTodayDate() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}
// /获得今日访问量
public static long getTodayNum() {
loadNum();
return today_num;
}
// 获得总的访问量
public static long getTotalNum() {
loadNum();
return total_num;
}
}