Sql 如何使用jsp和CanvasJS在图形中显示信息?

Sql 如何使用jsp和CanvasJS在图形中显示信息?,sql,jsp,servlets,canvasjs,Sql,Jsp,Servlets,Canvasjs,我需要用我的sql server数据绘制图表 所以我有一个servlet,它选择我需要的所有数据并将其转换为json,然后将所有数据转发到我的jsp 我想要的是在饼图中显示名称之类的信息 这是我的servlet: PreparedStatement ps = c.prepareStatement("select SUM(ChiffreAffaire)as CA,M500_NOM from V502_client where Annee=? and Mois=2 group by M500_NO

我需要用我的sql server数据绘制图表

所以我有一个servlet,它选择我需要的所有数据并将其转换为json,然后将所有数据转发到我的jsp

我想要的是在饼图中显示名称之类的信息

这是我的servlet:

PreparedStatement ps = c.prepareStatement("select SUM(ChiffreAffaire)as CA,M500_NOM from V502_client where Annee=?  and Mois=2 group by M500_NOM");
            ps.setString(1, name);
            ResultSet resultSet = ps.executeQuery();

    while(resultSet.next()){
        yVal = resultSet.getFloat("CA");
                nom=resultSet.getString("M500_NOM");
        map = new HashMap<Object,Object>(); map.put("x", nom);map.put("y",yVal); list.add(map);
        dataPoints = gsonObj.toJson(list);
    }  

            request.getSession().setAttribute("data", dataPoints); 
            RequestDispatcher rd = request.getRequestDispatcher("graph.jsp");
            rd.forward(request, response); 
PreparedStatement ps=c.prepareStatement(“选择SUM(ChiffreAffaire)作为CA,从V502_客户机中选择M500_NOM,其中Annee=?和Mois=2按M500_NOM分组”);
ps.setString(1,名称);
ResultSet ResultSet=ps.executeQuery();
while(resultSet.next()){
yVal=resultSet.getFloat(“CA”);
nom=resultSet.getString(“M500_nom”);
map=newhashmap();map.put(“x”,nom);map.put(“y”,yVal);list.add(map);
dataPoints=gsonObj.toJson(列表);
}  
request.getSession().setAttribute(“数据”,数据点);
RequestDispatcher rd=request.getRequestDispatcher(“graph.jsp”);
转发(请求、响应);
这是显示我的图表的脚本:

<script type="text/javascript">
<%     String shared1 = (String)request.getSession().getAttribute("data");%>

window.onload = function() { 


var chart = new CanvasJS.Chart("chartContainer", {
    animationEnabled: true,
    exportEnabled: true,
    title: {
        text: "Représentation graphique"
    },
    data: [{
        type: "pie", //change type to bar, line, area, pie, etc
        showInLegend: "true",
        startAngle: 40,
        dataPoints: <%out.print(shared1);%>
    }]
});
chart.render();
}
</script>
<div id="chartContainer" style="height:370px; width:600px;"></div>

window.onload=函数(){
var chart=new CanvasJS.chart(“chartContainer”{
animationEnabled:没错,
exportEnabled:true,
标题:{
文字:“陈述图形”
},
数据:[{
类型:“饼图”//将类型更改为条形、直线、面积、饼图等
showInLegend:“正确”,
startAngle:40,
数据点:
}]
});
chart.render();
}
其结果如下所示:

我想这样:

尝试在数据集上定义
legendText
,并指出哪个属性包含标签(“x”)

数据:[{
键入:“馅饼”,
showInLegend:是的,
传奇文本:“{x}”,
startAngle:40,
数据点:
}]
请注意,
饼图的每个标签(
x
属性)应该不同


这可能会有所帮助:我已经看到了这篇文章,但无法将其改编为我的代码;我从servlet转发到jsp的ex数据是这样的:[{“x”:3EG“y”:2280.0“}{“x”:3EG“y”:4200.0}]我怎么能在我的图形中有3EG的名字呢?如果我写y,它会显示结果,但是用x这个名字,我什么都没有(没有图表)没有错误,{y}工作得很好。我不知道为什么{x}不会显示你的数据
[{“x”:3EG“y”:2280.0}{x”:3EG“y”:4200.0}]
不是有效的JSON格式,这必须是原因
3EG
必须用双引号括起来,并且缺少逗号。因此,我应该做什么,请生成有效的JSON数据,即
[{x:“标签1”,y:2280.0},{x:“标签2”,y:4200.0}]
data: [{
    type: "pie", 
    showInLegend: true,
    legendText: "{x}", 
    startAngle: 40,
    dataPoints: <%out.print(shared1);%>
}]