java代码实现highchart与数据库数据结合完整案例分析(一)---饼状图

作者原创:转载请注明出处

在做项目的过程中,经常会用到统计数据,同时会用到highchart或echart进行数据展示,highchart是外国开发的数据统计图插件,

echart是我们国家开发的数据统计插件,我比较喜欢highchart的统计插件,在这里展示的也是highchart插件的应用。

应用highchart插件并不难,找到官方文档,copy代码,就能把图标呈现出来,难的是如何将本地数据库中的数据与其结合。因此,

在这里主要分析将数据库数据和插件结合的过程,我用的是java代码实现的。下面是实现的比例图:

先展示js代码

<script type="text/javascript">
  $(function () {
      var livePercent=document.getElementById("livePercent").value;
      var vodPercent=$("#vodPercent").val();
      var playCount=$("#playCount").val();
     // alert(typeof());
     // alert("vodPercent:"+vodPercent+"######livePercent="+livePercent);
      $(‘#pieChart_res‘).highcharts({
            chart: {
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false
            },
            title: {
                text: ‘播放统计比例图‘
            },
            credits: {
                text: ‘‘,
                href: ‘‘
            },
            tooltip: {
                headerFormat: ‘{series.name}<br>‘,
                pointFormat: ‘{point.name}: <b>{point.percentage:.1f}%</b>‘
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: ‘pointer‘,
                    dataLabels: {
                        enabled: true,
                        format:‘{point.description}‘,
                        distance:-140
                    },
                    showInLegend:true
                }
            },
            series: [{

                type: ‘pie‘,
                name: ‘该资源访问量占比‘,
                data: [
                        [‘直播访问量占比‘,parseFloat(livePercent)],
                       {
                            name:‘点播访问量占比‘,
                            y:parseFloat(vodPercent),
                             sliced: true,
                             selected: true,
                             description:‘总播放数‘+playCount
                       }
                ]
            }]
        });
    });
  </script> 

上面的代码和highchart中API的代码基本一致,主要的思想是:需要什么数据,提供什么数据。

所以我在后台中已经将数据塞到jsp页面中,并在js中解析出来,将数据提供给统计图。

######特别要注意的是,从jsp获取到的属性值(int或long,或double,float),当我用js变量var来接收的时候,它统统变成了

string类型的变量,所以在供给数据的时候,一定要解析为js中的数字类型格式,此处用到的方法为:parseLong(),或parseFloa();

这里调了很长时间,由于数据类型的不匹配,统计图在调试的过程中,老是不显示。要长记性。。。。。

此处为将后台获取到的数据放在页面中的代码展示(在页面中均是隐藏显示):

<input type="hidden" name="liveTotalCount" id="livePercent" value="${liveCountPercent }">
                       <input type="hidden" name="vodTotalCount" id="vodPercent" value="${vodCountPercent }">

之所以将其放入页面中,是为了方便接收数据。
最关键的地方来了,java代码获取统计图所需数据:

//从数据库查询数据
UserPlaySummaryStatistics playStatistics=userPlayService.getUserPlayStatistics(playSummaryStatistics);

        String liveTotalCount= playStatistics.getLiveTotalCount();
        String vodTotalCount= playStatistics.getVodTotalCount();
        //将获取到的数据类型转化为long类型
        long liveCount=percentString(playStatistics.getLiveTotalCount());//A站总次数
        long vodCount=percentString(playStatistics.getVodTotalCount());//B站总次数

        //计算百分比,百分比为double类型,,,,,
        double livePercent = (double)liveCount/ (liveCount+vodCount);
        DecimalFormat format = new DecimalFormat("0.00%");
        String liveCountPercent = format.format(livePercent);
        System.out.println("liveCountPercent"+liveCountPercent);

        double vodPercent = (double)vodCount/ (liveCount+vodCount);
        DecimalFormat format1 = new DecimalFormat("0.00%");
        String vodCountPercent = format1.format(vodPercent);
        System.out.println("vodCountPercent"+vodCountPercent);

 request.setAttribute("playCount", playCount);
        request.setAttribute("liveCountPercent", liveCountPercent);
        request.setAttribute("vodCountPercent", vodCountPercent);
        

主要的代码部分就是以上,这样就可以轻而易举的实现一个统计图,而且加载的数据比较快。

也有用ajax实现数据请求的,过程和逻辑也比较复杂,后面我也会将我用ajax实现统计图的代码案例分享出来,已做笔记。

时间: 2025-02-01 09:52:24

java代码实现highchart与数据库数据结合完整案例分析(一)---饼状图的相关文章

java代码实现highchart与数据库数据结合完整案例分析(二)---折线图

作者原创:未经博主允许不许转载 在上一篇的博客中,展示和分析了如何做一个饼状图,有疑问可以参考上一篇博客. 现在分析和展示折线图的绘制和案例分析, 先展示效果图: 与饼状图不同的是,折线图展现更多的数据,也会体现出更多的自动性. 先展示一下js代码: <!-- 播放类型统计折线图 --> <script type="text/javascript"> $(function () { var livFlowList=document.getElementById(

Java代码实现向Oracle数据库中导入已备份的数据库文件

今天将很早就实现的一个Oracle数据库备份功能粘贴出来,这个功能是在大学做阶段设计时写的: import java.io.IOException; /** * Java代码实现向Oracle数据库中导入已备份的数据库文件 * * @author:Gaohuanjie */ public class OracleImportDatabase { /** * 向Oracle数据库中导入已备份的数据库文件 * * @author:Gaohuanjie * @param userName 进入数据库所

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行? 因为在解析时最新解析的就是JAVA代码,不管写哪里,都会最新被解析

一款基于jQuery饼状图比例分布数据报表

今天给大家带来一款基于jQuery饼状图比例分布数据报表.这款报表插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div style="width: 600px; margin: 0 auto;"> <table id='myTable5'> <caption> 会员地区分布</caption> <th

C#+JQuery+.Ashx+百度Echarts 实现全国省市地图和饼状图动态数据图形报表的统计

在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈现的需求,经过几轮挑选,最终选择了百度的echarts作为报表基础类库.echarts功能强大,界面优美.由于客户是淘宝卖家,因此想要实现每个月全国各个省份各自购力如何,大家可以统计其他的,如果GDP 人口 等等. 百度echarts简介请参考 http://echarts.coding.io/doc/example.html 效果图如下:全部是动态数据 JS代码: <!-- Charts La

JFreeChart框架中生成饼状图上怎样显示数据 [问题点数:40分,结帖人GreenLawn]

我用JFreeChart框架生成饼状图,但想把数据信息在饼图上显示,是在饼图内部(即圆内)显示!怎样实现啊?? 去掉lablepieplot.setLabelGenerator(null);去掉线pieplot.setLabelLinksVisible(false); 饼图标签显示百分比方法PiePlot pp = (PiePlot)chart.getPlot();pp.setLabelGenerator(new StandardPieSectionLabelGenerator("{2}&quo

前端数据统计用做Bootstrap的一些柱状图、饼状图和折线图案例

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. Bootstrap 使用了一些 HTML5 元素和 CSS 属性.为了让这些正常工作,您需要使用 HTML5 文档类型(Doctype). 因此,请在使用 Bootstrap 项目的开头包含下面的代码段. <!DOCTYPE html> <html> .... </html> Bootstr

Excel数据可视化应用(直方图、折线图、饼状图)

直方图:对比关系 直方图是一种统计报告图,是表示资料变化情况的主要工具.直方图由一系列高度不等的的纵向条纹或线段表示数据分布的情况.一般用横轴表示数据类型,纵轴表示分布情况. 例1: 1.右键单击图表的纵坐标轴数据,选择“设置坐标轴格式”命令打开窗格,在“坐标轴选项”下,各类数据设置如下: 2.右键单击图例,选择设置图例格式,选择靠上(或点击图表空白处,点击上方图表工具中的设计,选择下方左侧的“添加图表元素”,选择“图例”.“顶部”) 3.右键单击任一直条(单击一下会自动选择全部直条),选择“添

java代码定时备份mysql数据库及注意事项——基于 springboot

一.需求: 定时备份数据库数据 二.分析: 1. 定时任务 2. 备份数据库表结构和数据 三.实现: 1. pom 文件: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x