JFreeChart數據庫接口
本章介紹如何從數據庫表中讀取簡單的數據,然後 JFreeChart 使用這些數據來創建圖表。
業務數據
考慮到我們有如下的 MySQL 表 mobile_tbl(mobile_brand VARCHAR(100)NOT NULL,unit_sale INT NO NULL);
考慮這個表含有以下記錄:
手機品牌
銷售單位
IPhone5S
20
Samsung Grand
20
MotoG
40
Nokia Lumia
10
使用數據庫數據生成圖表
下面是創建一個基於MySQL數據庫 mobile_tbl表 在數據庫實例 TEST_DB 中提供的信息餅圖的代碼。根據需要,可以使用任何其他數據庫。
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 dataset_tb" ); DefaultPieDataset dataset = new DefaultPieDataset( ); while( resultSet.next( ) ) { dataset.setValue( resultSet.getString( "brandname" ) , Double.parseDouble( resultSet.getString( "datavalue" ))); } 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.jpeghavingJPEG圖像文件,如下圖。