📄 stathandle.java
字号:
//获取某一个时段访问量的SQL语句
System.out.println(sql);
//将SQL语句打印在日志信息中
ps = cnn.prepareStatement(sql);
//使用SQL字符串创建语句句柄
rs = ps.executeQuery();
//执行语句获取结果集
rs.next();
//游标指向结果集中第一条记录
data.addValue(rs.getInt(1),
i * length + "-" + (i + 1) * length, date);
//将三元组(访问次数,时段,访问日期)保存到数据集中
DBHandle.closeResource(ps, rs, null);
//释放在本次循环中的结果集和语句句柄
}
}
catch (Exception es) {
throw es;
//直接将异常抛出,由外部程序处理
}
finally {
DBHandle.closeResource(ps, rs, cnn);
//释放连接句柄以及其他未释放的资源
}
}
/**
* 获取当天在内,前几天的各个时段的访问数据,并保存到数据集(JFreeChart要用到)中
* @param dayCount int 要统计多少天的数据
* @param count int 要统计多少个时段的数据
* @return DefaultCategoryDataset 返回数据集,里面包含前count天每天的访问次数
*/
public static DefaultCategoryDataset getHourStat(int dayCount, int count) throws
Exception {
DefaultCategoryDataset data = new DefaultCategoryDataset();
//数据集,用于保存每天各个时段的访问数据
try {
java.util.Date date = new java.util.Date();
//创建日期对象,默认为当前日期
for (int i = 0; i < dayCount; i++) {
//循环dayCount次,获取每天各个时段的访问数据
String str = THandle.getLastDate(date, dayCount - i - 1);
//获取前面第(count - i - 1)天的日期的字符串表示
setHourStat(data, str, count);
//将某一天各个时段的访问数据取出来并保存到数据集中
}
}
catch (Exception es){
throw es;
}
return data;
//返回数据集
}
/**
* 获取OS类型统计,并保存到数据集(JFreeChart要用到)中
* @throws Exception
* @return DefaultPieDataset
*/
public static DefaultPieDataset getosStat() throws
Exception {
Connection cnn = null;
PreparedStatement ps = null;
ResultSet rs = null;
DefaultPieDataset data = new DefaultPieDataset();
//数据集,用于保存操作系统类型统计数据
try {
cnn = DBHandle.getConnection();
//获取连接句柄
String sql = "select distinct os from history";
//从历史记录表中获取操作系统类型
ps = cnn.prepareStatement(sql);
//使用SQL字符串创建语句句柄
rs = ps.executeQuery();
//执行语句获取结果集
while (rs.next()) {
String os = rs.getString(1);
//获取某一类操作系统名称
sql = "select count(*) from history where os = \"" + os + "\"";
//获取某一名称操作系统的访问次数
System.out.println(sql);
//将SQL语句打印在日志信息中
PreparedStatement pss = cnn.prepareStatement(sql);
//使用SQL字符串创建语句句柄
ResultSet rss = pss.executeQuery();
//执行语句获取结果集
rss.next();
//游标指向结果集中第一条记录
data.setValue(os, rss.getInt(1));
//将二元组(操作系统名字,访问次数)保存到数据集中
DBHandle.closeResource(pss, rss, null);
//释放在本次循环中的结果集和语句句柄
}
}
catch (Exception es) {
throw es;
//直接将异常抛出,由外部程序处理
}
finally {
DBHandle.closeResource(ps, rs, cnn);
//释放连接句柄以及其他未释放的资源
}
return data;
}
/**
* 获取浏览器类型统计,并保存到数据集(JFreeChart要用到)中
* @throws Exception
* @return DefaultPieDataset
*/
public static DefaultPieDataset getbrowserStat() throws
Exception {
Connection cnn = null;
PreparedStatement ps = null;
ResultSet rs = null;
DefaultPieDataset data = new DefaultPieDataset();
//数据集,用于保存操作系统类型统计数据
try {
cnn = DBHandle.getConnection();
//获取连接句柄
String sql = "select distinct browser from history";
//从历史记录表中获取操作系统类型
ps = cnn.prepareStatement(sql);
//使用SQL字符串创建语句句柄
rs = ps.executeQuery();
//执行语句获取结果集
while (rs.next()) {
String browser = rs.getString(1);
//获取某一类操作系统名称
sql = "select count(*) from history where browser = \"" + browser + "\"";
//获取某一名称操作系统的访问次数
System.out.println(sql);
//将SQL语句打印在日志信息中
PreparedStatement pss = cnn.prepareStatement(sql);
//使用SQL字符串创建语句句柄
ResultSet rss = pss.executeQuery();
//执行语句获取结果集
rss.next();
//游标指向结果集中第一条记录
data.setValue(browser, rss.getInt(1));
//将二元组(操作系统名字,访问次数)保存到数据集中
DBHandle.closeResource(pss, rss, null);
//释放在本次循环中的结果集和语句句柄
}
}
catch (Exception es) {
throw es;
//直接将异常抛出,由外部程序处理
}
finally {
DBHandle.closeResource(ps, rs, cnn);
//释放连接句柄以及其他未释放的资源
}
return data;
}
public static DefaultPieDataset getbrowserStat2() throws
Exception {
Connection cnn = null;
PreparedStatement ps = null;
ResultSet rs = null;
DefaultPieDataset chart = new DefaultPieDataset();
try {
cnn = DBHandle.getConnection();
//获取连接句柄
java.util.Date date = new java.util.Date();
String sql = "select distinct browser from history";
System.out.println(sql);
ps = cnn.prepareStatement(sql); //创建语句句柄
rs = ps.executeQuery();
while (rs.next()) {
String browser = rs.getString(1);
sql = "select count(*) from history where browser = \"" +
browser + "\"";
System.out.println(sql);
PreparedStatement pss = cnn.prepareStatement(sql); //创建语句句柄
ResultSet rss = pss.executeQuery();
rss.next();
chart.setValue(browser, rss.getInt(1));
DBHandle.closeResource(pss, rss, null);
}
}
catch (Exception es) {
throw es;
}
finally {
DBHandle.closeResource(ps, rs, cnn); //释放语句句柄和连接句柄
}
return chart;
}
/**
* 查询访问站点次数
*/
public static int select() throws
Exception {
Connection cnn = null;
PreparedStatement ps = null;
ResultSet rs = null;
int count = 0;
try {
cnn = DBHandle.getConnection();
//获取连接句柄
ps = cnn.prepareStatement(
"select count(*) from history");
//创建语句句柄
rs = ps.executeQuery();
//执行查询语句,获取结果集
rs.next();
//游标指向第一条记录
count = rs.getInt(1);
//记录访问次数
}
catch (Exception es) {
throw es;
//直接将异常抛出,由外部程序处理
}
finally {
DBHandle.closeResource(ps, rs, cnn);
//释放语句句柄、连接句柄、结果集
}
return count;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -