【发布时间】:2021-01-03 03:54:45
【问题描述】:
我是 JFreeChart 的新手,我正在尝试创建一个在 y 轴上显示值并在 x 轴上显示时间的图表。 所有这些数据(值和时间)已经在我的数据库中,我每 3 到 4 秒就有一个值。
但是我不想显示所有内容或动态。例如,我只想显示一个图表,显示从 2020-06-16 10:31:52 到 2020-06-29 11:31:52 的所有值(但正如我所说,一切都已经在我的数据库中了)。
这是我的变体(没有所有导入):
public class JDBCTest {
private void display() {
JFrame f = new JFrame("JDBCTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JDBCXYDataset jds = createDataset();
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Inventory", "Date", "Count", jds, true, true, false);
f.add(new ChartPanel(chart));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private JDBCXYDataset createDataset() {
try {
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:","", "");
Statement st = conn.createStatement();
st.execute("DROP TABLE IF EXISTS Test ");
st.execute("create table Test(Date_Heure timestamp, PV float)");
String Date_Debut = "2020-06-25 13:28:08";
String Date_Fin = "2020-06-26 13:28:08";
String sql1 = "INSERT INTO Test (Date_Heure,PV) "
+ "SELECT TABLE ,TABLE "
+ "FROM TABLE "
+ "WHERE Date_Heure BETWEEN ? AND ?";
PreparedStatement ps = conn.prepareStatement(sql1);
ps.setString(1,Date_Debut);
ps.setString(2,Date_Fin);
ps.executeUpdate();
JDBCXYDataset jds = new JDBCXYDataset(conn);
jds.executeQuery("select TABLE , TABLE from Test");
return jds;
} catch (SQLException ex) {
ex.printStackTrace(System.err);
}
return null;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new JDBCTest().display();
}
});
}
}
编辑:错误来自数据库而不是代码本身。
编辑: 代码灵感来自于垃圾神http://stackoverflow.com/a/24762078/230513
附加信息:
Date_Time 类型的timestamp
PV 类型的float
【问题讨论】:
标签: java mysql charts jfreechart