今天我开始只学习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);
错误告诉我没有足够的有效列,其中按查询生成
答案 0 :(得分:1)
由于您的查询会查看某个日期范围的数量,因此您可能需要考虑JDBCXYDataset
,提到here,“这可以检测基于元数据的时间序列;”将它与时间序列图表ChartFactory.createTimeSeriesChart()
一起使用。
附录; 它给了我错误:“查询生成的有效列数不够。” 这是什么意思?
如果没有complete example & schema,很难说,但您可以针对recognized java.sql.Types
检查您的查询。