?? 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 + -