Lista com varias tabelas[Resolvido]

2 respostas
asandro1501

Olá pessoal

Preciso montar uma lista que resulta de select em 3 tabelas. Até que eu tentei começar mas não rendeu, não consigo montar a lista, quando eram listas de uma classe só era fácil, agora que é mais de uma não sei fazer.

Vou utilizar esta lista num datatable do primefaces.

Por favor, corrijam o meu código. a sql tá funcionando certinho. UsuarioBean.java
import dao.FabricaConexao;
import java.io.Serializable;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import modelo.Funcao;
import modelo.Funcionario;
import modelo.Usuario;

@ManagedBean
@SessionScoped
public class UsuarioBean implements Serializable {

    Connection conexao = new FabricaConexao().fazConexao(); //Cria uma nova conexao  ao banco de dados
    //cria um novo objeto(modelo) usuario e seus gets e sets
    Usuario usuario = new Usuario();
    Funcionario funcionario = new Funcionario();
    Funcao funcao = new Funcao();

    public Funcao getFuncao() {
        return funcao;
    }

    public void setFuncao(Funcao funcao) {
        this.funcao = funcao;
    }

    public Funcionario getFuncionario() {
        return funcionario;
    }

    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Usuario> getusuarios() {
        List<Usuario> usuarios = new ArrayList<Usuario>();
        String sql = "select u.codUS, f.nomeFuncionario, u.idpermissao, u. login, c.cargo from usuario as u,"
                + " funcionario as f,funcao as c where u.codfuncionario=f.codFuncionario and u.codfuncao= c.codFuncao";

        PreparedStatement stmt;
        try {
            stmt = this.conexao.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery(sql);

            while (rs.next()) {
                Usuario usuario = new Usuario();
                Funcionario funcionario = new Funcionario();
                Funcao funcao = new Funcao();

                int codus = rs.getInt("codUs");
                String nomeFuncionario = rs.getString("nomeFuncionario");
                int idpermissao = rs.getInt("idpermissao");
                String login = rs.getString("login");
                String cargo = rs.getString("cargo");

                usuario.setCosUs(codus);
                usuario.setIdpermissao(idpermissao);
                usuario.setLogin(login);
                funcionario.setNomeFuncionario(nomeFuncionario);
                funcao.setCargo(cargo);

                usuarios.add(usuario);
            }
        } catch (SQLException ex) {
            Logger.getLogger(UsuarioBean.class.getName()).log(Level.SEVERE, null, ex);
        }

        return usuarios;

    }
}
minhas classes modelos usuario.java
public class Usuario {
    private int cosUs;
    private int codfuncionario;
    private int idpermissao;
    private String login;
    private String senha;
    private int codfuncao;

    public int getCodfuncao() {
        return codfuncao;
    }

    public void setCodfuncao(int codfuncao) {
        this.codfuncao = codfuncao;
    }

    public int getCodfuncionario() {
        return codfuncionario;
    }

    public void setCodfuncionario(int codfuncionario) {
        this.codfuncionario = codfuncionario;
    }

    public int getCosUs() {
        return cosUs;
    }

    public void setCosUs(int cosUs) {
        this.cosUs = cosUs;
    }

    public int getIdpermissao() {
        return idpermissao;
    }

    public void setIdpermissao(int idpermissao) {
        this.idpermissao = idpermissao;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

}
funcionario.java
import java.util.Date;

public class Funcionario {
    private int codFuncionario;
    private String nomeFuncionario;
    private Date dataNascimento;
    private String rg;
    private String cpf;
    private String telefone;
    private String celular;
    private String endereco;
    private String cidade;
    private String estado;

    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public int getCodFuncionario() {
        return codFuncionario;
    }

    public void setCodFuncionario(int codFuncionario) {
        this.codFuncionario = codFuncionario;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getNomeFuncionario() {
        return nomeFuncionario;
    }

    public void setNomeFuncionario(String nomeFuncionario) {
        this.nomeFuncionario = nomeFuncionario;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

}
funcao.java
public class Funcao {
    private int codFuncao;
    private  String cargo;
    private String obs;

    public String getCargo() {
        return cargo;
    }

    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    public int getCodFuncao() {
        return codFuncao;
    }

    public void setCodFuncao(int codFuncao) {
        this.codFuncao = codFuncao;
    }

    public String getObs() {
        return obs;
    }

    public void setObs(String obs) {
        this.obs = obs;
    }  
}

Desde já obrigado a todos

2 Respostas

asandro1501

Boa tarde

Alguém pode me dar uma mão nisso?

Obrigado

asandro1501

Não sei se é a maneira correta mas como estava precisando, criei uma outra classe que possui todos os atributos que constam na minha consulta sql.

Estou postando como resolvido

Criado 25 de novembro de 2010
Ultima resposta 3 de dez. de 2010
Respostas 2
Participantes 1