標籤:xml檔案 .sql 資料庫資料 spn let next null select java
首先我將產生餅圖的方法獨立寫成一個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映射。
最終效果如下:
讀取資料庫資料,並將資料整合成3D餅圖在jsp中顯示