我目前正试图在我的JSP页面上实现Google Charts的使用。我试图将sql语句的结果返回给ArrayList,我想从arrayList中获取信息并使用它填充谷歌图表。从javascript数据对象对象填充图表问题
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%!public static String[] getLiveData() throws SQLException, ClassNotFoundException{
ArrayList<String> a = new ArrayList<String>();
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root", "nbuser");
PreparedStatement ps = con.prepareStatement("SELECT department, projectname, priority, cores, disk_space FROM project.booking GROUP BY department");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
a.add(rs.getString(1));
a.add(rs.getString(4));
}
return (String[]) a.toArray(new String[a.size()]);
}%>
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([ISSUE TO RETURN HERE]);
var options = {
title: 'Company Performance'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
继续调用图形等在体内
老实说,我觉得我绕了错误的方式,但我不能确定如何获取数据数组中,并返回它在我的jsp页面上创建图形。
我不是很擅长java,所以我很抱歉如果方法完全关闭,任何帮助将不胜感激。
编辑
<head>
<script type="text/javascript">
var theData = [ // Start of JavaScript data object
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/project", "root", "nbuser");
PreparedStatement ps = con.prepareStatement("SELECT department,SUM(cores) FROM project.booking GROUP BY department;");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
%>
[" <%= rs.getString(1)%>",<%= rs.getInt(2)%>],
<%
};
// End of JavaScript object holding the data
%>
];
</script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([['Department', 'Cores']].concat(theData), false);
var options = {
title: 'Initial graph test'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="chart_div" style="width: 900px; height: 500px;"></div>
<a href="/ProjectAndBackend/System?action=livecharts">Live Charts</a>
</body>
</html>
最终实现固定用户观看
Thankyou对于非常快速的响应,稍微丢失了我放置所有内容的位置,我使用上面的jsp代码从数据库中提取数据,然后命名每个字符串,然后当我将数据添加到google图表arrayToDataTable([name1,name 2])还是我完全关闭 – 2013-04-04 19:41:59
添加了一些笔记。你需要适应你正在制作的任何一种图表。 – 2013-04-04 19:49:55
感谢您的李,我认为我已经改变了你的建议,但我仍然有一个小的问题,填充谷歌图表,编辑原来的问题与当前实施 – 2013-04-05 09:41:42