使用JFreeChart在Java中的不同栏中可视化数据库查询

时间:2018-06-16 14:00:52

标签: java jfreechart

好的,我的目标是使用JFreeChart可视化数据库查询。

我很容易只用一个查询来显示一个或多个条形图,但我不知道如何在一个查询中可视化两个不同的查询 可视化。

请查看我的代码

public class Anfrage7 extends ConnectionTest {

    static DefaultCategoryDataset barChart = new DefaultCategoryDataset();
    static int array[] = new int[2];

    public static int viewTable(Connection connection, String dbName) throws SQLException {
        ResultSet result = null;
        Statement statement;
        int anzahl = 0;
        for (int i = 1; i <= 2; i++) {
            String sql = "SELECT COUNT (*) AS anzahl FROM " + dbName + " WHERE QUERY LIKE '%goodbye%letter%'";
            try {
                statement = connection.createStatement();
                result = statement.executeQuery(sql);
                while (result.next()) {
                    anzahl = result.getInt("anzahl");
                    System.out.println("Anzahl:\t" + anzahl);
                    array[i - 1] = anzahl;
                }
            } catch (SQLException e) {
                System.out.println("SQLException: " + e.getMessage());
                System.out.println("SQLState: " + e.getSQLState());
                System.out.println("VendorError: " + e.getErrorCode());
            }
        }
        doBarChart(anzahl);
        return anzahl;
    }

    public static void doBarChart(int anzahl) throws SQLException {
        barChart.setValue(array[0], "Anfragemenge", "Goodbye Letter");
        barChart.setValue(array[1], "Anfragemenge", "Support Group");
        JFreeChart chartData = ChartFactory.createBarChart3D("WURDE NACH SELBSTHILFEGRUPPEN / ABSCHIEDSBRIEF GESUCHT?",
                "SELBSTHILFEGRUPPE / ABSCHIEDSBRIEF", "ANFRAGEMENGE", barChart, PlotOrientation.VERTICAL, false, true,
                false);
        CategoryPlot categoryPlot = chartData.getCategoryPlot();
        BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
        br.setMaximumBarWidth(.15);
        try {
            ChartUtilities.saveChartAsJPEG(new File("/Users/dominic/Desktop/Anfrage7&10.jpeg"), chartData, 1200, 700);
        } catch (Exception e) {
            System.err.println("Error" + e);
        }
    }

}

所以我的第一个栏'%goodbye%letter%'完美展示了,但我需要在第一个酒吧告别信旁边的'%support%group%'第二个栏。

我需要在这做什么?就像我尝试了一切。 首先,我认为我只需要添加第二个带有不同查询的String sql,但它不起作用。

请记住,我是一名初学者,而且这是我班上的主题。

0 个答案:

没有答案