1

在我的项目中,我想在饼图中显示每个员工在系统中注册的机构数量。机构表包含一个外键,其中包含注册机构的员工的 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 语句。请阅读接受的答案及其评论。

4

1 回答 1

2

你不需要PreparedStatement. 使用org.jfree.data.jdbc.JDBCPieDataset接受查询“在两列中返回数据,第一列包含VARCHAR数据,第二列包含数字数据”的构造函数。您可以在ChartFactory.

JDBCPieDataset ds = new JDBCPieDataset(conn, "SELECT ...");

此处显示了一个完整的示例。

于 2013-05-23T02:26:34.360 回答