JFreechart查看特定数据

时间:2013-07-16 17:26:27

标签: java sql jfreechart

今天我开始只学习JFreeChart,这是我的代码`

try{
       String query = "Select Purchase_Date,Total_Quantity_Purchased "
               + "from Purchases";



       JDBCCategoryDataset dataset = new JDBCCategoryDataset(javaconnect.ConnecrDb(),query);
       JFreeChart chart = ChartFactory.createLineChart("Chart", "Purchase Date", "Total Purchase", dataset, PlotOrientation.VERTICAL, false, true, true);
       BarRenderer renderer = null;
       CategoryPlot plot = null;
       renderer = new BarRenderer();
       ChartFrame frame = new ChartFrame("Title",chart);
       frame.setVisible(true);
       frame.setSize(500,650);
   }catch(Exception ex){
       JOptionPane.showMessageDialog(null,ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
   }

我的结果列出了我所有数据库的数据。

现在我想改进它,我想在特定日期搜索总购买量 7月1日至7月10日的例子。反正有没有这样做?我是新来的。请帮忙。 TQ

编辑:

java.util.Date utilStartDate = from.getDate();
java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());     

java.util.Date utilStartDate2 = to.getDate();
java.sql.Date sqlStartDate2 = new java.sql.Date(utilStartDate2.getTime());

String query = "Select Purchase_Date, Total_Purchase_Quantity from Purchasing Where Purchase_Date between "+sqlStartDate+" and "+sqlStartDate2+"";

JDBCXYDataset dataset = new JDBCXYDataset (javaconnect.ConnecrDb(),query);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Query chart", "Date", "Total Order", dataset, true,true,false);
BarRenderer renderer = null;
CategoryPlot plot = null;
renderer = new BarRenderer();
ChartFrame frame = new ChartFrame("Query Chart",chart);
frame.setVisible(true);
frame.setSize(500,650);

错误告诉我没有足够的有效列,其中按查询生成

1 个答案:

答案 0 :(得分:1)

由于您的查询会查看某个日期范围的数量,因此您可能需要考虑JDBCXYDataset,提到here,“这可以检测基于元数据的时间序列;”将它与时间序列图表ChartFactory.createTimeSeriesChart()一起使用。

附录; 它给了我错误:“查询生成的有效列数不够。” 这是什么意思?

如果没有complete example & schema,很难说,但您可以针对recognized java.sql.Types检查您的查询。