日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php框架 > 框架設(shè)計(jì) > struts2+MySQL+jfreechart

struts2+MySQL+jfreechart

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-01-30 08:30:10 閱讀次數(shù):5175次
1.所需要的jar包如圖1所示

2.工程目錄的格式如圖2所示


2.新建配置文件(struts-jfreechart.xml)
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts⑵.0.dtd"> 
<struts> 
<package name="jFreeChartDemonstration" extends="struts-default" namespace="/jfreechart"> 
<result-types> 
<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"></result-type> 
</result-types> 
<action name="JFreeChartAction" class="com.lyf.jf.JFreeChartAction"> 
<result type="chart"> 
<param name="width">400</param> 
<param name="height">300</param> 
</result> 
</action> 
</package> 
</struts>
 說(shuō)明:這里只需要說(shuō)明下struts-jfreechart.xml,這里直接調(diào)用已寫好的類ChartResult,這個(gè)類是繼承自com.opensymphony.xwork2.Result,傳入生成圖片大小的參數(shù)width和height就能夠了。
3.新建struts.xml文件
<?xml version="1.0" encoding="UTF⑻"?> 
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts⑵.0.dtd"> 

<struts> 
<include file="struts-jfreechart.xml" /> 
</struts>
4.修改web.xml文件
  <welcome-file-list> 
    <welcome-file>/index.jsp</welcome-file> 
  </welcome-file-list> 
  <filter> 
  <filter-name>struts2</filter-name> 
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
 </filter> 
 <filter-mapping> 
  <filter-name>struts2</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping>
5.新建index.jsp頁(yè)面
<%@ page language="java" pageEncoding="utf⑻"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<%@ taglib uri="/struts-tags" prefix="s"%> 
<html> 
 <head> 
  <title>2010計(jì)算機(jī)編程語(yǔ)言市場(chǎng)份</title> 
 </head> 
 <body> 
  <h2> 
   <center>2010計(jì)算機(jī)編程圖書銷量統(tǒng)計(jì)圖</center>  
  </h2> 
    <center> 
       <img src="<s:url value='jfreechart/JFreeChartAction.action'/>" /> 
    </center> 
 </body> 
</html>
6.新建JFreeChartAction繼承ActionSupport,生成JFreeChart對(duì)象并保存到chart中
package com.lyf.jf;
import java.awt.Color;
import java.awt.Font;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import com.opensymphony.xwork2.ActionSupport;
public class JFreeChartAction extends ActionSupport {
 
 static final long serialVersionUID = 0L;
  /**
   * JFreeChart對(duì)象chart,注意這個(gè)名稱是固定的。
   * 供ChartResult調(diào)用->ActionInvocation.getStack().findValue("chart")
   */
  private JFreeChart chart;
  // 定義圖表的寬度
  private Integer width;
  // 定義圖表的長(zhǎng)度
  private Integer height;
  @Override
  public String execute() throws Exception {
   width = 400;
   height = 300;
   // 生成JFreeChart對(duì)象
   makePieChart();
   return SUCCESS;
  }
  // 生成餅圖
  public void makePieChart() {
    // 設(shè)置數(shù)據(jù)
    PieDataset data;
    data=createDataset();
   
    //解決亂碼問(wèn)題(不能顯示中文的問(wèn)題)
   StandardChartTheme mChartTheme = new StandardChartTheme("CN");
      mChartTheme.setLargeFont(new Font("黑體", Font.BOLD, 20));
      mChartTheme.setExtraLargeFont(new Font("宋體", Font.PLAIN, 15)); //標(biāo)題
      mChartTheme.setRegularFont(new Font("宋體", Font.PLAIN, 15));
      ChartFactory.setChartTheme(mChartTheme);
    chart = ChartFactory.createPieChart("圖書銷量統(tǒng)計(jì)圖", // 圖表標(biāo)題
    data, // 數(shù)據(jù)
    true, // 是不是顯示圖例
    false, // 是不是顯示工具提示
    false // 是不是生成URL
     );
   
     //設(shè)置1系列的屬性
       //取得餅圖的Plot對(duì)象
       PiePlot plot = (PiePlot)chart.getPlot();
       //用來(lái)顯示標(biāo)注的注解,{0}:{1}用來(lái)設(shè)置顯示的格式
       plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}"));
       plot.setBackgroundPaint(Color.gray);//設(shè)置背風(fēng)景
      //設(shè)置簡(jiǎn)單標(biāo)簽
       plot.setSimpleLabels(true);
       //標(biāo)題
       TextTitle texttitle=chart.getTitle();
       texttitle.setFont(new Font("宋體", Font.BOLD, 30));
       //圖示
       LegendTitle legendtitle =chart.getLegend();
       legendtitle.setItemFont(new Font("宋體", Font.BOLD, 14));
       //設(shè)定背景透明度(0⑴.0之間)
       plot.setBackgroundAlpha(0.5f);
       //設(shè)定前景透明度(0⑴.0之間)
       plot.setForegroundAlpha(0.60f);
  }
   //準(zhǔn)備數(shù)據(jù)集(連接MySQL數(shù)據(jù)庫(kù)
  private PieDataset createDataset() {
    double[][] table = null;
    String[] name = null;
    String[] number = null;
    int result = 0;
    try{
     Class.forName("com.mysql.jdbc.Driver").newInstance();
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sale", "root", "fab");
     ResultSet rs = conn.createStatement().executeQuery("select name,number from sale");
     // 獲得行數(shù)
     if (rs.last()){
      result = rs.getRow();
      rs.beforeFirst(); // 指針回滾
     }
     table = new double[result][rs.getMetaData().getColumnCount() - 1];// 定義寄存數(shù)據(jù)的2維數(shù)組
     name = new String[result];
     number = new String[rs.getMetaData().getColumnCount() - 1]; // 定義寄存數(shù)據(jù)表頭的1維數(shù)組
     rs.next();
     for (int j = 0; j < rs.getMetaData().getColumnCount() - 1; j++) {
      number[j] = rs.getMetaData().getColumnName(j + 2); // 取出表頭并寄存數(shù)組
     }
     int i = 0;
     rs.beforeFirst();
     while (rs.next()) {
      name[i] = rs.getString(1);
      for (int j = 0; j < rs.getMetaData().getColumnCount() - 1; j++)
       table[i][j] = rs.getDouble(j + 2); // 取出數(shù)據(jù)并存入2維數(shù)組
      i++;
     }
     conn.close(); // 關(guān)閉連接
     rs.close(); // 關(guān)閉查詢
    } catch (Exception ex) {
     System.err.println("Exception:" + ex.getMessage());
    }
       //創(chuàng)建DefaultPieDataset類型的數(shù)據(jù)集,并行數(shù)據(jù)集中添加數(shù)據(jù)(從數(shù)據(jù)庫(kù)中取的數(shù)據(jù))
    DefaultPieDataset dataset = new DefaultPieDataset();
    for (int i = 0; i < number.length; i++)
     for (int j = 0; j < result; j++) {
   dataset.setValue(name[j],table[j][i] );
   //調(diào)試用
      System.out.println(table[j][i]);
      System.out.println(name[j]);
     }
    return dataset;
   }
  public JFreeChart getChart() {
   return chart;
  }
  public void setChart(JFreeChart chart) {
   this.chart = chart;
  }
  public Integer getWidth() {
   return width;
  }
  public void setWidth(Integer width) {
   this.width = width;
  }
  public Integer getHeight() {
   return height;
  }
  public void setHeight(Integer height) {
   this.height = height;
  }
}
7.數(shù)據(jù)庫(kù)腳本
/*
SQLyog 企業(yè)版 - MySQL GUI v7.14
MySQL - 5.0.18-nt : Database - sale
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`sale` /*!40100 DEFAULT CHARACTER SET gbk */;
USE `sale`;
/*Table structure for table `sale` */
DROP TABLE IF EXISTS `sale`;
CREATE TABLE `sale` (
  `name` varchar(150) default NULL COMMENT '書名',
  `number` varchar(150) default NULL COMMENT '數(shù)量'
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*Data for the table `sale` */
insert into `sale`(`name`,`number`) values ('C++','20'),('Java','20'),('數(shù)據(jù)結(jié)構(gòu)','30'),('安卓','40'),('IOS','25');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

8.通過(guò)http://localhost:8080/JavafreeChartReport/要求訪問(wèn),就會(huì)出現(xiàn)以下圖3所示:



生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久中文字 | 日韩精品网 | 欧美精品一区二区三区在线播放 | 成人性视频免费网站 | 精品国产一区二区三区四区在线观看 | 久久久久久综合 | 亚洲欧洲成人av每日更新 | 日日日操| 国产视频在线播放 | 99精品国产免费久久 | 国产麻豆 | 成人在线免费观看 | 亚洲欧洲国产视频 | 亚洲一区在线看 | 天天搞夜夜操 | 最新国产精品 | 国产九色| 成人做爰视频www网站小优视频 | 成人av网站在线观看 | 国产iv一区二区三区 | 亚洲福利一区二区 | 成人国产精品免费网站 | 久久成人黄色 | 亚洲精品视频一区二区三区 | 2019中文字幕在线视频 | 欧美日一区 | 国产乱码精品一区二区三区五月婷 | 九九九九精品 | 欧美一区二区三区在线看 | 亚洲欧洲无码一区二区三区 | 国产精品精品视频一区二区三区 | 欧美在线视频一区二区 | 国产日韩欧美一区二区 | 久久久久91 | 国产在线网 | 欧美性猛交xxxx乱大交退制版 | 亚洲欧美另类久久久精品2019 | 欧美日韩一区二区三区在线视频 | 中文字幕亚洲天堂 | 中文字幕av网 | 综合色区 |