Моя цель - написать небольшую программу, которая попадает в нашу базу данных общественной безопасности и получает время отклика скорой помощи. Затем я хочу взять эти данные и создать гистограмму. У меня очень трудное время, когда JFreechart печатает гистограмму времени отклика скорой помощи. Когда я запускаю мой код Netbeans генерирует сообщение об ошибке:Jfreechart и jdbc.CategoryDataset
Исключение в потоке «основного» java.lang.ClassCastException: org.jfree.data.jdbc.JDBCCategoryDataset не может быть приведен к org.jfree.data.xy .IntervalXYDataset at EMSResearch.histogram1.main (histogram1.java:39) C: \ Users \ kulpandm \ AppData \ Local \ NetBeans \ Cache \ 8.1 \ executor-snippets \ run.xml: 53: Java возвращается: 1 BUILD FAILED (общее время: 7 секунд)
У меня нет абсолютно никакой идеи, как решить эту проблему. Если я смогу получить гистограмму для распечатки, я смогу продолжить работу и взломать ее, чтобы она выглядела хорошо для моих отчетов. Ниже приведен мой код:
package EMSResearch;
import java.io.File;
import java.io.IOException;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.jdbc.JDBCCategoryDataset;
import org.jfree.data.xy.IntervalXYDataset;
public class histogram1
{
public static void main(String[] args) throws ClassNotFoundException
{
try
{
Connection conn = null;
conn = DriverManager.getConnection("jdbc:sqlserver://MyURL;database=MyDatabase;integratedsecurity=false;user=MyUser;password=MyPassword");
//dataset = new JDBCCategoryDataset(conn);
String query = "SELECT PUN_UnitID\n"
+ ", DATEDIFF(SECOND, IIU_tenroute, IIU_tArrive) AS [ResponseTime]\n"
+ "FROM IIncidentUnitSummary\n"
+ "WHERE IIU_tDispatch > 'may 15, 2016'\n"
+ "AND PUN_UnitID LIKE 'M[0-4]_'\n"
+ "AND IIU_tEnroute IS NOT NULL\n"
+ "AND IIU_tArrive IS NOT NULL\n"
+ "AND DATEDIFF(SECOND, IIU_tEnroute, IIU_tArrive) BETWEEN 0 AND 1800";
JDBCCategoryDataset dataset = new JDBCCategoryDataset(conn, query);
dataset.executeQuery(query);
conn.close();
//the following blows up.
JFreeChart chart;
chart = ChartFactory.createHistogram("data", "ws range", "freq", (IntervalXYDataset) dataset, PlotOrientation.VERTICAL, true, false, false);
int width = 560;
int height = 370;
File histChart = new File("c:\\histChart2.jpeg");
try
{
ChartUtilities.saveChartAsJPEG(histChart, chart, width, height);
} catch (IOException ex)
{
Logger.getLogger(chart2.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (SQLException ex)
{
ex.printStackTrace();
}
}
}
Не могли бы вы показать мне, что я делаю неправильно? Что я могу сделать, чтобы исправить это? (пожалуйста, будьте конкретны, так как я не эксперт-программист).