2015-07-20 64 views
-2

我正在寻找一个图表生成库,它将生成饼图或数据库数据的趋势图。这里最重要的因素是图形应该是活的(每次我刷新它应该从数据库更新),我想集成到jsf2页面。jsf图表生成库

任何JavaScript库/ java库,我可以用来集成到jsf应用程序?我有简单的jsf应用程序(mojarra)。将primefaces/richfaces添加到应用程序。请建议一些我可以使用的库/工具。

+0

你看着JFreeChart的? https://en.wikipedia.org/wiki/JFreeChart我已经在过去使用它,它很不错。 – Constantin

+0

Charting!=从我的角度来看报告。图表是报表的一部分,但报表通常更多...所以OP必须更清楚需要什么 – Kukeltje

+0

@Kukeltje我正在寻找一个可以从数据库生成图表的工具。 –

回答

1

不确定关于jsf,但此示例显示如何将JFreeChart连接到数据库数据集。易于修改定期更新,如果这是你追求的:

来源是:http://www.tutorialspoint.com/jfreechart/jfreechart_database_interface.htm

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); 
    } 
} 
+0

Charting!=从我的角度来报告。图表是报告的一部分,但报告往往是更多... – Kukeltje

+0

@kukeltje你正在写。 –

+0

@Constantin我看到的教程要求我将richfaces添加到我的jsf应用程序中。我可以不用richfaces来完成它。 –