讀取數據庫數據,並將數據整合成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映射。

最終效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM