读取数据库数据,并将数据整合成3D饼图在jsp中显示

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

 1 import java.io.IOException;
 2 import java.sql.SQLException;
 3 import org.jfree.chart.ChartFactory;
 4 import org.jfree.chart.JFreeChart;
 5 import org.jfree.data.general.DefaultPieDataset;
 6
 7 public class PieChart {
 8     public JFreeChart chart=null;
 9     public PieChart() throws IOException, SQLException{
10         DefaultPieDataset data = getDataset();
11         chart = ChartFactory.createPieChart3D("各类商品数量饼图", data,true, false, false);//绘制饼图
12     }
13     //自定义方法,生成饼图数据集
14     private static DefaultPieDataset getDataset() throws SQLException{
15         DefaultPieDataset dabaset = new DefaultPieDataset();
16         ConnDB conn = new ConnDB();
17         String sql = "select p_type,count(p_type) as p_type_count from product GROUP BY(p_type)";
18         conn.rs = conn.doQuery(sql);
19         //读取数据库数据,生成数据集
20         while(conn.rs.next()){
21             dabaset.setValue(conn.rs.getString("p_type"), conn.rs.getInt("p_type_count"));
22         }
23         return dabaset;
24     }
25 }

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

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

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

1 <servlet>
2         <servlet-name>DisplayChart</servlet-name>
3         <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
4 </servlet>
5 <servlet-mapping>
6         <servlet-name>DisplayChart</servlet-name>
7         <url-pattern>/servlet/DisplayChart</url-pattern>
8 </servlet-mapping>

完成servlet映射。

最终效果如下:

时间: 2024-10-19 14:34:57

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

在jsp中显示List中的数据

<% ArrayList list = (ArrayList)request.getAttribute("class"); for(int i = 0; i < list.size(); i++){ com.zxf.bean.Class clazz = (com.zxf.bean.Class)list.get(i); %> <tr> <td><%=clazz.getcId()%></td> <td><%

(springmvc)从oracle读取blob类型图片并在jsp中显示

最近工作中遇到从数据库中读取blob类型的图片,并在页面显示的问题,想了下,大概有两种方式,一是将数据转换成文件,保存在本地,然后将文件地址传到前台页面,读取保存的图片文件:二是将文件转换成数据流,直接在页面显示,我觉得第二个方法比较简单,而且处理速度更快点.下面我将我的操作过程记录下来,给大家一个参考. 思路.步骤: 1:从数据库读取blob图片 2:转换成数据流 3:显示在页面 首先,我们在springmvc中建立一个controller方法 @RequestMapping("/toolUt

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

我基础不好,根据所学的知识,书本的例题修改的,也不知道我理解的是否符合老师要求 运用C#将数据存入数据库.并且可以读取数据库里的数据,此项目我运用了封装.我运用了一个窗体将数据存读数据. 我首先创建了一个数据库,库名“数学题库” ,然后创建了一个表“tiku1”, 添加一个类Class1 class Class1    {        public string strCon = @"Data Source=.;Initial Catalog=数学题库;Integrated security=

二进制数据将图片保存到数据库,并读取数据库二进制数据显示图片

一. 浏览图片 OpenFileDialog ofd = new OpenFileDialog();            ofd.InitialDirectory = @"E:\";            ofd.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files(*.*)|*.*";            ofd.RestoreDirectory = true; if (ofd

python读取数据库数据,读取出的中文乱码问题

最近遇到python读取数据库数据,读取出的中文乱码问题, 网络搜索的基本是: "1. Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2. MySQL数据库charset=utf-83. Python连接MySQL是加上参数 charset=utf84. 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)" 这些,一一尝试后仍未解决.去数据库查看了下,发现这个出现中文乱码的字段类型是varcha

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform)让用户方便的操作数据库中的数据. 什么是ADO.NET 是一组库类,System.Data. Ado.net组成 Connection:用来连接数据库 Command:用来执行SQL语句 DataReader:只读.只进的结果集,一条一条读取数据(SteamReader.XmlReader) Da

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

主要用在ExecuteReader(c)中,如果想要返回对象前不关闭数据库连接,须要用CommandBehavior.CloseConnection: CloseConnection解决了流读取数据模式下,数据库连接不能有效关闭的情况.当某个XXXDataReader对象在生成时使用了CommandBehavior.CloseConnection,那数据库连接将在XXXDataReader对象关闭时自动关闭. 由于流模式读取数据库的特点,在具体应用时很难确定数据库连接何时才能被关闭,因为读取的动

读取数据库数据填充到缓存的问题,及修复方案一则

业务简述: 为了提高站点性能,部署了一台Redis,把资源从SqlServer数据库中同步到Redis,站点由原来的读取数据库,变更为读取Redis,以利用Redis的高并发提升站点性能目的. 环境说明: 1.假设表名为softs, 记录的更新时间字段名为 updateTime: 2.不考虑数据库的DELETE操作,只考虑INSERT和UPDATE操作: 3.流程中所有时间,都以数据库时间为准,以避免不同服务器之间的时间误差,导致数据遗漏. 4.重要的前提条件:数据库执行INSERT和UPDAT

Java读取数据库数据生成柱状图

此案例是用swing显示数据的.需要引入jfreechart相关包,不同版本可能包不相同,本人用的是 此案例在ssi框架下会报错,不用框架就没问题. Java后台逻辑代码: public class BarChart { ChartPanel frame1; public BarChart() { CategoryDataset dataset = getDataSet(); JFreeChart chart = ChartFactory.createBarChart3D("水果",