JFreeChart数据库接口


本章介绍如何从数据库表中读取简单数据,然后使用JFreeChart创建您选择的图表。

业务数据

考虑我们有以下MySQL表格mobile_tbl(mobile_brand VARCHAR(100)NOT NULL,unit_sale INT NO NULL);

考虑这张表有以下记录 -

移动品牌 单位销售额
IPhone 5S 20
三星Grand 20
MotoG 40
诺基亚Lumia 10

使用数据库生成图表

以下是根据MySQL数据库中test_db中提供的mobile_tbl表中提供的信息创建饼图的代码。根据您的要求,您可以使用任何其他数据库。

import java.io.*;
import java.sql.*;

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class PieChart_DB {

   public static void main( String[ ] args )throws Exception {

      String mobilebrands[] = {
         "IPhone 5s",   
         "SamSung Grand",   
         "MotoG",            
         "Nokia Lumia"
      };

      /* Create MySQL Database Connection */
      Class.forName( "com.mysql.jdbc.Driver" );
      Connection connect = DriverManager.getConnection(
         "jdbc:mysql://localhost:3306/jf_testdb" ,     
         "root",     
         "root123");

      Statement statement = connect.createStatement( );
      ResultSet resultSet = statement.executeQuery("select * from mobile_data" );
      DefaultPieDataset dataset = new DefaultPieDataset( );

      while( resultSet.next( ) ) {
         dataset.setValue(
         resultSet.getString( "mobile_brand" ) ,
         Double.parseDouble( resultSet.getString( "unit_sale" )));
      }

      JFreeChart chart = ChartFactory.createPieChart(
         "Mobile Sales",   // chart title           
         dataset,          // data           
         true,             // include legend          
         true,           
         false );

      int width = 560;    /* Width of the image */
      int height = 370;   /* Height of the image */
      File pieChart = new File( "Pie_Chart.jpeg" );
      ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
   }
}

让我们将上面的Java代码保存在 PieChart_DB.java 文件中,然后从提示的命令中编译并运行它 -

$javac PieChart_DB.java  
$java PieChart_DB

如果一切正常,它将编译并运行以创建一个名为 Pie_Chart.jpeg 的JPEG图像文件, 具有以下图表。

JFreeChart数据库接口