(注意:自测 @version fusioncharts/3.2.4-sr1.9888 版本 可以 V3.2.1 没有setJSONUrl 方法 )
前台Jquery:
$(function(){
var chart = new FusionCharts("/public/Charts/Line.swf", "ChartId", "100%", "300");
chart.setJSONUrl("/SearchStatisticsController/statistics");
chart.render("chartdiv");
});
(注释:chart.setJSONUrl("/SearchStatisticsController/statistics");是向后台发送请求)
后台java代码:
//生成统计图所需的参数
public static void statistics(String searchUser) {
List<Map> listCount= new ArrayList<Map>();
String sql="SELECT COUNT(manufactory) from ProductSearch WHERE manufactory<>'0'";
sql=andWhere2(sql,searchUser);
Query query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("厂商",query.getResultList().get(0)));
sql="SELECT COUNT(gene) from ProductSearch WHERE gene<>''";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("基因",query.getResultList().get(0)));
sql="SELECT COUNT(catalognNo) from ProductSearch WHERE catalognNo<>''";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("目录号",query.getResultList().get(0)));
sql="SELECT COUNT(gene) from ProductSearch WHERE type='试剂'";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("试剂",query.getResultList().get(0)));
sql="SELECT COUNT(gene) from ProductSearch WHERE type='抗体'";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("抗体",query.getResultList().get(0)));
sql="SELECT COUNT(organism) from ProductSearch WHERE organism<>''";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("来源",query.getResultList().get(0)));
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < listCount.size(); i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("label", listCount.get(i).get("column"));
map.put("value", listCount.get(i).get("count"));
list.add(map);
}
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("caption", "用户查询统计");
map2.put("xAxisName", "查询名称");
map2.put("yAxisName", "查询次数");
map2.put("numberPrefix", "次");
List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>();
Map<String, Object> map4 = new HashMap<String, Object>();
map4.put("name", "numberPrefix");
map4.put("type", "font");
map4.put("font", "宋体");
map4.put("size", "50");
map4.put("color", "99E3BB");
list2.add(map4);
Map map3 = new HashMap();
map3.put("data", list);
map3.put("chart", map2);
map3.put("definition", list2);
renderJSON(map3);
}
(注释:就是查询数据库,拼接json格式,返回到前台)
public static void statistics(String searchUser) {
List<Map> listCount= new ArrayList<Map>();
String sql="SELECT COUNT(manufactory) from ProductSearch WHERE manufactory<>'0'";
sql=andWhere2(sql,searchUser);
Query query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("厂商",query.getResultList().get(0)));
sql="SELECT COUNT(gene) from ProductSearch WHERE gene<>''";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("基因",query.getResultList().get(0)));
sql="SELECT COUNT(catalognNo) from ProductSearch WHERE catalognNo<>''";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("目录号",query.getResultList().get(0)));
sql="SELECT COUNT(gene) from ProductSearch WHERE type='试剂'";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("试剂",query.getResultList().get(0)));
sql="SELECT COUNT(gene) from ProductSearch WHERE type='抗体'";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("抗体",query.getResultList().get(0)));
sql="SELECT COUNT(organism) from ProductSearch WHERE organism<>''";
sql=andWhere2(sql,searchUser);
query = ProductSearch.em().createQuery(sql);
listCount.add(getMap("来源",query.getResultList().get(0)));
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < listCount.size(); i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("label", listCount.get(i).get("column"));
map.put("value", listCount.get(i).get("count"));
list.add(map);
}
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("caption", "用户查询统计");
map2.put("xAxisName", "查询名称");
map2.put("yAxisName", "查询次数");
map2.put("numberPrefix", "次");
List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>();
Map<String, Object> map4 = new HashMap<String, Object>();
map4.put("name", "numberPrefix");
map4.put("type", "font");
map4.put("font", "宋体");
map4.put("size", "50");
map4.put("color", "99E3BB");
list2.add(map4);
Map map3 = new HashMap();
map3.put("data", list);
map3.put("chart", map2);
map3.put("definition", list2);
renderJSON(map3);
}
代码我是在QQ中问一个前辈,我是看明白了,希望能帮助到一些跟我一样刚学的人