首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话)

 import java.io.IOException;
import java.sql.SQLException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset; public class PieChart {
public JFreeChart chart=null;
public PieChart() throws IOException, SQLException{
DefaultPieDataset data = getDataset();
chart = ChartFactory.createPieChart3D("各类商品数量饼图", data,true, false, false);//绘制饼图
}
//自定义方法,生成饼图数据集
private static DefaultPieDataset getDataset() throws SQLException{
DefaultPieDataset dabaset = new DefaultPieDataset();
ConnDB conn = new ConnDB();
String sql = "select p_type,count(p_type) as p_type_count from product GROUP BY(p_type)";
conn.rs = conn.doQuery(sql);
//读取数据库数据,生成数据集
while(conn.rs.next()){
dabaset.setValue(conn.rs.getString("p_type"), conn.rs.getInt("p_type_count"));
}
return dabaset;
}
}

然后在jsp文件中调用这个java类,详细代码如下:

 <jsp:useBean id="pies" class="bean.PieChart"></jsp:useBean>
<body> <%
String filename = ServletUtilities.saveChartAsPNG(pies.chart,500, 300, null,session);//生成图片路径
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;//产生图片在工程中的完整路径
System.out.println(graphURL);
%>
<div align="center">
<img src="<%=graphURL%>">
</div>
</body>

这样子做完还不够,还需要在web.xml文件中做配置才能显示出图片,详细配置如下:

 <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>/servlet/DisplayChart</url-pattern>
</servlet-mapping>

完成servlet映射。

最终效果如下:

读取数据库数据,并将数据整合成3D饼图在jsp中显示的更多相关文章

  1. EasyUI+JSP之java读取数据库后JSON格式数据的返回及调用

    做作业工程中遇到一些问题,特此记录一下 解决的问题:使用EasyUI框架搭建简单学生管理系统(数据库增删改查)操作时配合JSP,不知道如何把从数据库获得的数据封装成JSON格式并传回前端JSP并进行展 ...

  2. 如何在jsp中显示数据库的内容

    用Eclipse tomcat新建一个JSP页面(一)介绍了如何创建一个web程序和第一个jsp页面,以及Eclipse需要的一些必要配置.今天,我们重点说一下如何从数据库中查询数据,并且在JSP页面 ...

  3. 在jsp中显示List中的数据

    <% ArrayList list = (ArrayList)request.getAttribute("class"); for(int i = 0; i < lis ...

  4. JAVA读取MongoDB中的二进制图片并在jsp中显示

    http://blog.csdn.net/u012138706/article/details/52180665

  5. spring读取数据库的配置信息(url、username、password)时的<bean>PropertyPlaceholderConfigurer的用法

    用法1: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...

  6. 【数据库_Mysql】JAVA-数据库Date格式在前台JSP页面的获取

    问题: 数据库保存的为date格式的日期 在前台JSP页面显示的为一串数字1487897     解决办法: 数据库表中字段对应的实体对象属性的get方法上添加一行代码 页面即可正常显示      

  7. 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

    在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...

  8. C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用

    主要用在ExecuteReader(c)中,如果想要返回对象前不关闭数据库连接,须要用CommandBehavior.CloseConnection: CloseConnection解决了流读取数据模 ...

  9. 运用.NIT将数据存入数据库、读取数据库(运用封装)陈老师作业

    我基础不好,根据所学的知识,书本的例题修改的,也不知道我理解的是否符合老师要求 运用C#将数据存入数据库.并且可以读取数据库里的数据,此项目我运用了封装.我运用了一个窗体将数据存读数据. 我首先创建了 ...

随机推荐

  1. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  2. Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...

  3. 兼容Mono的下一代云环境Web开发框架ASP.NET vNext

    微软在2014年5月12日的TechEd大会上宣布将会发布下一代ASP.NET框架ASP.NET vNext的预览.此次发布的ASP.NET框架与以前相比发生了根本性的变化,凸显了微软“云优先”(cl ...

  4. CentOS7下自定义目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用自定义目录安装mono+jexus教程,使用默认目录请查看使用默认目录安装 ...

  5. WinRT自定义控件第一 - 转盘按钮控件

    之前的文章中,介绍了用WPF做一个转盘按钮控件,后来需要把这个控件移植到WinRT时,遇到了很大的问题,主要原因在于WPF和WinRT还是有很大不同的.这篇文章介绍了这个移植过程,由于2次实现的控件功 ...

  6. Android Secret Code

    我们很多人应该都做过这样的操作,打开拨号键盘输入*#*#4636#*#*等字符就会弹出一个界面显示手机相关的一些信息,这个功能在Android中被称为android secret code,除了这些系 ...

  7. 查看Job执行的历史记录

    SQL Server将Job的信息存放在msdb中,Schema是dbo,表名以“sysjob”开头. 一,基础表 1, 查看Job和Step,Step_ID 是从1 开始的. select j.jo ...

  8. jQuery:实现网页的打印功能

    实现的打印功能大致跟浏览器的 Ctrl+P 效果一样 一.直接上代码 <!DOCTYPE html> <head> <meta charset="utf-8&q ...

  9. MUI 个推获取ClientID的方法

               本次是获取个推ClientID的方法              //监听消息开始             document.addEventListener("plus ...

  10. 基于 getter 和 setter 撸一个简易的MVVM

    Angular 和 Vue 在对Angular的学习中,了解到AngularJS 的两个主要缺点: 对于每一次界面时间,Ajax 或者 timeout,都会进行一个脏检查,而每一次脏检查又会在内部循环 ...