sql >> データベース >  >> RDS >> Mysql

SQLデータベースからの時間のJFreechartチャート

    引用された例 JDBCXYDatasetを使用する JDBCCategoryDataset 、以下に示すように、元の質問 JDBCCategoryDatasetの使用 、「最初の列はカテゴリ名になり、残りの列は値になります(各列はシリーズを表します)。」 JDBCXYDatasetを使用する 、「最初の列はx軸の値になり、残りの列はy軸の値になります。」その結果、クエリは次のようになると思います。

    SELECT Date_Time, PV …
    

    ドメイン軸は時間なので、ここ に示すようにラベルの位置を回転させることを検討してください 。決定するときは、 TimeSeriesに注意してください。 向きについては柔軟性がありませんが、フォーマットについては柔軟性があります。

    に対する次の変更 浮動小数点値の使用を示します。 PVに注意してください タイプはfloat 、および PreparedStatement setFloat()を使用します 。

    JDBCCategoryDataset jds = createDataset();
    JFreeChart chart = ChartFactory.createLineChart("Test", "Time", "PV",
        jds,PlotOrientation.VERTICAL, true, true, false);
    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    CategoryAxis domain = plot.getDomainAxis();
    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    …
    private JDBCCategoryDataset createDataset() {
        try {
            Connection conn = DriverManager.getConnection(
                "jdbc:h2:mem:test", "", "");
            Statement st = conn.createStatement();
            st.execute("create table data(when timestamp, pv float)");
            PreparedStatement ps = conn.prepareStatement(
                "insert into data values (?, ?)");
            Calendar c = Calendar.getInstance();
            for (int i = 0; i < N; i++) {
                ps.setTimestamp(1, new Timestamp(c.getTimeInMillis()));
                ps.setFloat(2, (float)r.nextGaussian() + 2);
                ps.execute();
                c.add(Calendar.SECOND, r.nextInt(60 * 60));
            }
            JDBCCategoryDataset jds = new JDBCCategoryDataset(conn);
            jds.executeQuery("select when, pv from data");
            return jds;
        } catch (SQLException ex) {
            ex.printStackTrace(System.err);
        }
        return null;
    }
    



    1. モデルで使用されているLaravelの生のDBクエリにパラメーターをバインドするにはどうすればよいですか?

    2. mysqli_fetch_assocを使用して同じ結果を2回表示できないのはなぜですか?

    3. SSRSのドロップダウンリストパラメータのデフォルト値を--All--にするにはどうすればよいですか?

    4. APEX_ZIPの例