我实在网上找的代码,他们的工程发布过,执行后可以显示出图形。我的不能,在控制台一直报JDBCPieDataset - unknown data type。
这是PiePieChartUtil类;
package cn.chart.pie;
import java.awt.Font;
import java.text.NumberFormat;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.PieDataset;
import org.jfree.data.jdbc.JDBCPieDataset;
public class PieChartUtil {
public static PieDataset initPieData(){
// 数据库驱动
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// 数据库连接URL
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=Test1";
// 数据库用户名
String user = "sa";
// 数据库密码
String password = "13949060166.zzhd";
JDBCPieDataset dataset = null;
try {
// 通过JDBC创建数据集合
dataset = new JDBCPieDataset(url, driverName, user, password);
// 测试连接是否成功
System.out.println("Connection Successful!");
// SQL语句
String query = "select category,val from tb_shop"; //TODO
System.out.println("111111");
// 查询并向数据集合中添加数据
dataset.executeQuery(query);
// 关闭数据库连接
dataset.close();
} catch (Exception e) {
e.printStackTrace();
}
return dataset;
}
// 创建饼图
public static JFreeChart createChart(){
// 参数分别表示图表标题,数据集对象,是否显示图例,是否显示提示文本,是否生成超链接
JFreeChart chart = ChartFactory.createPieChart3D("月销售量统计", initPieData(), true, true, false);
// 设置标题字体
chart.getTitle().setFont(new Font("隶书", Font.BOLD, 25));
// 设置图例类别字体
chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,15));
// 获取绘图区
PiePlot plot = (PiePlot) chart.getPlot();
// 设置前景透明度
plot.setForegroundAlpha(0.5f);
// 设置分类标签的字体
plot.setLabelFont(new Font("宋体",Font.PLAIN,12));
// 设置饼形为正圆
plot.setCircular(true);
// 设置分类标签格式为类别名称及所占百分比
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={2}", NumberFormat.getNumberInstance(),
NumberFormat.getPercentInstance()));
return chart;
}
}
pie.jsp代码
<%@page import="cn.chart.pie.PieChartUtil"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities,cn.chart.pie.PieChartUtil"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
encodingFilter
/*
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
求各位大神指点一下