gpt4 book ai didi

mysql - 如何将 MySQL 中的数据插入数组,然后在 Netbeans 中显示在条形图上?

转载 作者:行者123 更新时间:2023-11-29 02:20:35 25 4
gpt4 key购买 nike

单击按钮时,我的 graph() 方法需要循环以下行:

ddataset.setValue(new Double(unitsSold), cat, brand + " " + name);

循环次数基于我的数据库的类别列中的项目数。第一项是“电缆”,其中有七项。我想将这些项目中的每一个存储到一个数组中(来自数据库),然后使用 for 循环 在单个条形图上显示所有这些项目。执行此操作的正确语法是什么?

这是我的graph()方法编码:

public void graph()
{
//variable to get the row count
int x = 0;
try
{
//declaring the type of category in the column
String text = "Cable";
//Select statement getting the row count
String sql = "select count(category) from dbsales where category ='" + text + "'";
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost:3306/salventri","root","password");
Statement stmt=con.createStatement();
ResultSet rs = stmt.executeQuery(sql);

while(rs.next())
{
//setting 'x' with the row count
x = rs.getInt("count(category)");
DefaultCategoryDataset ddataset = new DefaultCategoryDataset();
//loop the data according to x value
for(int i = 0; i < x; i++)
{
ddataset.setValue(new Double(unitsSold), cat, brand + " " + name);
}
JFreeChart chart = ChartFactory.createBarChart3D("Annual Sales Performance", cat, "Number of Units Sold", ddataset);
chart.getTitle().setPaint(Color.RED);
CategoryPlot p = chart.getCategoryPlot();
p.setRangeGridlinePaint(Color.BLUE);
ChartFrame frame2 = new ChartFrame("Annual Sales", chart);
frame2.setVisible(true);
frame2.setSize(450,350);
}

最佳答案

这是唯一对我有意义的事情。不需要计数查询或将类别放入数据中,因为整个图表都是针对该类别的。除非您想对所有年份求和,否则年份确实需要包含在数据中。

PreparedStatement stmt = con.prepareStatement("select * from dbsales where category=?");
stmt.setString(1, text);
ResultSet rs = stmt.executeQuery();
DefaultCategoryDataset ddataset = new DefaultCategoryDataset();
while (rs.next()) {
ddataset.setValue(new Double(rs.getDouble("usold")),
rs.getString("pbrand") + " " + rs.getString("pname"),
rs.getString("syear"));
}
JFreeChart chart = ChartFactory.createBarChart3D("Annual Sales Performance", text, "Number of Units Sold", ddataset);
chart.getTitle().setPaint(Color.RED);
CategoryPlot p = chart.getCategoryPlot();
p.setRangeGridlinePaint(Color.BLUE);
ChartFrame frame2 = new ChartFrame("Annual Sales", chart);
frame2.setVisible(true);
frame2.setSize(450, 350);

应该产生这样的东西:

Generated Chart Screenshot

关于mysql - 如何将 MySQL 中的数据插入数组,然后在 Netbeans 中显示在条形图上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32553295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com