在我的项目中,我想在饼图中显示每个员工在系统中注册了多少个机构。 institutions 表包含一个外键,其中包含注册该机构的员工的 ID,因此每个机构都有一个与之关联的员工。
我构建了以下代码,但无法更进一步:
//etc
String query = "SELECT i.ins_id, f.fun_nome FROM instituicao i " +
"JOIN funcionario f " +
"ON(f.fun_id = i.ins_fun_id)";
PreparedStatement stmt = ConexaoDAO.con.prepareStatement(query,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
total = rs.getInt(1);
}
DefaultPieDataset pieDataset = new DefaultPieDataset();
for(VFuncionarioVO vo : lista) {
//pieDataset.setValue(vo.getNome(), );
}
//etc
我尝试在查询中使用 GROUP BY,但这并没有解决问题。
编辑:实际上,这项工作需要使用 GROUP BY 语句。请阅读已接受的答案及其评论。
最佳答案
您不需要PreparedStatement
。使用 org.jfree.data.jdbc.JDBCPieDataset
接受查询“返回两列数据的构造函数,第一列包含 VARCHAR
数据,第二列包含数字数据。”您可以在 ChartFactory
中使用数据集。
JDBCPieDataset ds = new JDBCPieDataset(conn, "SELECT ...");
显示了一个完整的例子here .
关于java - 如何创建一个饼图来显示每个人注册的东西的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704595/