[RESOLVIDO]Primefaces - como fazer um grafico com dados do banco mysql

2 respostas
F

galera preciso fazer dois graficos com duas consultas do banco...
uma com todos os dados de provas e trabalhos e outra de provas e trabalhos de aluno especifico.. segue a imagem de meu sistemas

alguem pode me mostrar onde tou errando ?

segue:

public class NotasBean {
	private Notas notas;
	private Notas selectedNotas;
	private List<Notas> filtroNotass;
	
	public Notas getNotas() {
		return notas;
	}
	public void setNotas(Notas notas) {
		this.notas = notas;
	}

	public Notas getSelectedNotas() {
		return selectedNotas;
	}
	public void setSelectedNotas(Notas selectedNotas) {
		this.selectedNotas = selectedNotas;
	}
	public List<Notas> getFiltroNotass() {
		return filtroNotass;
	}
	public void setFiltroNotass(List<Notas> filtroNotass) {
		this.filtroNotass = filtroNotass;
	}

	public void prepararAdicionarNotas(){
		notas = new Notas();
	}
	
	public void adicionarNotas(){
		dao.NotasDao obj_dao = new dao.NotasDao();
		obj_dao.save(notas);
	}

	public void criaGrafico(){
		notas = new Notas();
		
		notas.setLabel("Grafico de notas");
		
		notas.set(alura);
		notas.set(p1);
		notas.set(p2);
		notas.set(p3);
		notas.set(trb1);
		notas.set(trb2);
	}
}

}
package dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import model.Aluno;
import model.Notas;
import model.Notas;

public class NotasDao {
	private Conexao obj_conexao;

	public NotasDao() {
		obj_conexao = new Conexao();
	}

	public List<Notas> list() {
		List<Notas> array_registros = new ArrayList<Notas>();
		try {
			String sql = "Select alu_in_ra, dis_st_sigla, ald_fl_p1, ald_fl_p2, ald_fl_p3, ald_fl_trab1, ald_fl_trab2 from cad_aluno_disciplina";
			Statement comando_sql = (Statement) obj_conexao.getConexao()
					.createStatement();
			ResultSet obj_result = comando_sql.executeQuery(sql);

			while (obj_result.next()) {
				Notas obj_notas = new Notas();

				obj_notas.setAlura(obj_result.getInt("alu_in_ra"));
				obj_notas.setDiscsigla(obj_result.getString("dis_st_sigla"));
				obj_notas.setP1(obj_result.getInt("ald_fl_p1"));
				obj_notas.setP2(obj_result.getInt("ald_fl_p2"));
				obj_notas.setP3(obj_result.getInt("ald_fl_p3"));
				obj_notas.setTrb1(obj_result.getInt("ald_fl_trab1"));
				obj_notas.setTrb2(obj_result.getInt("ald_fl_trab2"));
				
				
				array_registros.add(obj_notas);
			}

		} catch (Exception e) {
			System.out.println("Erro no select" + e.getMessage());

		} finally {
			obj_conexao.fecharConexao();
		}

		return array_registros;
	}
	

	public void select(Aluno obj_aluno){
		FacesContext mensagem = FacesContext.getCurrentInstance();
		try{
			String comando_sql = "Select alu_in_ra, dis_st_sigla, ald_fl_p1, ald_fl_p2, ald_fl_p3, ald_fl_trab1, ald_fl_trab2 from cad_aluno_disciplina where alu_in_ra=?";
			PreparedStatement obj_sql = (PreparedStatement)
					obj_conexao.getConexao().prepareStatement(comando_sql);
			
			obj_sql.setInt(1, obj_aluno.getRa());
			
			obj_sql.executeUpdate();
			mensagem.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Erro ao selecionar aluno!","Snif"));
			
		}catch(Exception e){
			mensagem.addMessage(null, 
					new FacesMessage(FacesMessage.SEVERITY_FATAL, "Erro na inclusão: "+e.getMessage(),"  Ocoreu o erro: "+e.getMessage()));
		}finally{
			obj_conexao.fecharConexao();
		}
		return;
	}
}//fecha a classe
package model;

import java.io.Serializable;

public class Notas implements Serializable{
	private static final long serialVersionUID = 1L;
	private int alura;
	private String discsigla;
	private float p1;
	private float p2;
	private float p3;
	private float trb1;
	private float trb2;
	
	public Notas() {
		
	}

	public Notas (int alura, String discsigla, float p1, float p2, float p3, float trb1, float trb2){
		super();
		this.alura=alura;
		this.discsigla=discsigla;
		this.p1=p1;
		this.p2=p2;
		this.p3=p3;
		this.trb1=trb1;
		this.trb2=trb2;

	}
	
	public int getAlura() {
		return alura;
	}

	public void setAlura(int alura) {
		this.alura = alura;
	}

	public String getDiscsigla() {
		return discsigla;
	}

	public void setDiscsigla(String discsigla) {
		this.discsigla = discsigla;
	}

	public float getP1() {
		return p1;
	}

	public void setP1(float p1) {
		this.p1 = p1;
	}

	public float getP2() {
		return p2;
	}

	public void setP2(float p2) {
		this.p2 = p2;
	}

	public float getP3() {
		return p3;
	}

	public void setP3(float p3) {
		this.p3 = p3;
	}

	public float getTrb1() {
		return trb1;
	}

	public void setTrb1(float trb1) {
		this.trb1 = trb1;
	}

	public float getTrb2() {
		return trb2;
	}

	public void setTrb2(float trb2) {
		this.trb2 = trb2;
	}

}
Notas do aluno selecionado
<p:panel header="Grafico Notas Total" style="width: 550px">
				<p:lineChart id="linear" title="Grafico Linear" 
				value="#{notasBean.notas}" minY="0" maxY="10"
					style="height:300px">
				</p:lineChart>
			</p:panel>

nota geral de todos alunos

<p:panel header="Grafico Notas Total" style="width: 550px">
				<p:lineChart id="linear" title="Grafico Linear" 
				value="#{notasBean.notas}" minY="0" maxY="10"
					style="height:300px">
				</p:lineChart>
			</p:panel>

consegui galera............
quem precisa posta aqui

2 Respostas

L

opa, boa tarde…

estou precisando fazer o mesmo e estou com problemas…poderia dizer como resolveu?!

obrigado!!

L

Uma coisa não consegui entender!!

Por que vc passa os atributos da classe Notas no método criaGrafico()?

Estou tentando reproduzir isso aqui mas estou recebendo erro...

o .set() recebe dois parâmetros de ChartSeries (Object x, Number y)...como funcionou isso com vc?

a forma que estou tentando fazer é a seguinte:

private void criarGrafico() throws Exception {
		
		linhaModel = new CartesianChartModel();
		
		List<Contrato> listaContratos = new ArrayList<Contrato>();
		ContratoDAO dao = new ContratoDAO();
		
		ChartSeries atributos = new ChartSeries();
		atributos.setLabel("Resultado");
		atributos.set(listaContratos, 50);
		
		listaContratos = dao.getLista();
		
		linhaModel.addSeries(atributos);
		 
	}

o gráfico aparece na tela mas sem valores....

meu DAO está da seguinte forma:

public List getLista(){ try { List contratos = new ArrayList(); PreparedStatement stmt = this.connection1.prepareStatement("SELECT * FROM dgco_contratos"); ResultSet rs = stmt.executeQuery(); while (rs.next()) { //cria o objeto contrato Contrato contrato = new Contrato(); contrato.setDgco(rs.getString("dgco")); contrato.setOc(rs.getString("oc")); contrato.setCnpj(rs.getString("cnpj")); contrato.setContratoCobra(rs.getString("contratocobra")); contrato.setPregao(rs.getString("pregao")); contrato.setDescricao(rs.getString("descricao")); //adiciona o objeto à lista contratos.add(contrato); } rs.close(); stmt.close(); return contratos; } catch (SQLException e) { throw new RuntimeException(e); } }

e meu bean está exatamente como o seu....só que com minhas variáveis!!

sabe me dizer onde posso estar errando?

Criado 27 de novembro de 2012
Ultima resposta 12 de dez. de 2012
Respostas 2
Participantes 2