数据库的内容
CATEGORY | VALUE
---------+------
London | 54.3
New York | 43.4
Paris | 17.9
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.data.jdbc.JDBCPieDataset;
public class PieServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
//获得输出流
OutputStream os = response.getOutputStream();
//获得相于的数据对象
DefaultPieDataset dataset = (DefaultPieDataset) this.readData();
JFreeChart chart = ChartFactory.createPieChart("Test", dataset, true, true, false);
response.setContentType("image/png");
//写到输出流,并在页面上面显示
ChartUtilities.writeChartAsPNG(os, chart, 800, 600);
os.close();
} catch (RuntimeException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
/**
* 连结JDBC,并创建JDBCPieDataset对象返回
* @return
*/
private PieDataset readData() {
//创建JDBCPieDataset对象
JDBCPieDataset data = null;
String url = "jdbc:mysql://127.0.0.1:3306/jfreechartdb";
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
}
try {
con = DriverManager.getConnection(url, "root", "root");
//把JDBCPieDataset对象和Connection关联
data = new JDBCPieDataset(con);
String sql = "select * from piedata;";
//获得数据
data.executeQuery(sql);
con.close();
} catch (SQLException e) {
System.err.print("SQLException: ");
} catch (Exception e) {
System.err.print("Exception: ");
}
return data;
}
}
同时还有其它对象JDBCCategoryDataset,JDBCXYDataset,对应的是条状和,坐标,用于封装相应的数据
分享到:
相关推荐
### JfreeChart 学习笔记:深度解析与应用 #### JFreeChart概览与核心功能 JFreeChart作为一款开源的JAVA项目,专为图表开发而设计,支持丰富的图表类型,包括饼图、柱状图(含普通及堆栈柱状图)、线图、散点图、...
- **使用ServletResponse**:通过HttpServletResponse的getOutputStream()方法,将图表的BufferedImage对象转换成流并输出,实现图表在浏览器中的显示。 - **使用ChartUtilities类**:JfreeChart提供的...
**JFreeChart学习笔记** JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Applet或Web应用中创建各种复杂的图表。这个开源项目提供了多种图表类型,如饼图、柱状图、线图、散点图、甘特图等...
总结,本学习笔记涵盖了Struts的基础架构、国际化处理、类型转换的实现以及利用JFreeChart生成图表的方法。通过这些内容的学习,开发者可以更好地理解Struts框架的工作原理,并且能够灵活地应用于实际的Web开发项目...
总之,"Java学习笔记"涵盖了从基础到进阶的众多Java主题,结合JFreeChart和iText这两个实用库,不仅提供了对Java编程语言的深入理解,还展示了其在数据可视化和文档生成方面的强大能力。对于任何希望提升Java技能的...
### Ajax技术概述与Java框架学习笔记 #### 一、Ajax技术简介 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,...
实训者在初期可能经历了一个混乱的学习阶段,但随着时间的推移,通过不断的实践和反思,逐步形成有效的学习方法,比如有目的性的复习,而不是盲目地翻看笔记。 总的来说,JavaWeb实训不仅是技术的磨练,更是学习...