好的,我的目标是使用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,但它不起作用。
请记住,我是一名初学者,而且这是我班上的主题。