⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stathandle.java

📁 实现java动态生成统计图表,开发环境是myeclipse6.0+tomcat+mysql
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                //获取某一个时段访问量的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 + -