在我的项目中,我想在饼图中显示每个员工在系统中注册了多少个机构。
机构表包含一个外键,其中包含注册该机构的员工的 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,但这并没有解决问题。
EDIT:实际上,使用 GROUP BY 语句对于这项工作是必要的。请阅读已接受的答案及其评论。
你不需要PreparedStatement
。使用org.jfree.data.jdbc.JDBCPieDataset http://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/jdbc/JDBCPieDataset.html接受查询“返回两列数据的构造函数,第一列包含VARCHAR
数据,第二个包含数值数据。”您可以在您的ChartFactory
.
JDBCPieDataset ds = new JDBCPieDataset(conn, "SELECT ...");
显示了完整的示例here https://gist.github.com/trashgod/ce4137a5b6015de88662c43c463add45.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)