今天我刚刚开始学习 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 日为例。有办法做到这一点吗?我是新来的。请帮忙。总质量
编辑:
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);
错误给我没有足够的有效列,由查询生成
最佳答案
由于您的查询查看一系列日期的数量,因此您可能需要考虑 JDBCXYDataset
,提到 here ,“它可以根据元数据检测时间序列;”将其与时间序列图表一起使用,ChartFactory.createTimeSeriesChart()
。
附录; 它给了我错误:“查询生成的有效列不足。” 这是什么意思?
如果没有 complete example & schema 就很难说,但您可以根据 recognized 检查您的查询java.sql.Types
。
关于java - JFreechart查看具体数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683204/