Carregar dados de um campo com agregação

4 respostas
S

galera é o seguinte

tenho um usuario esse usuário pode ter varios perfil

quero exibir o nome desse perfil e grava-lo em uma session

tenho uma classe usuario q recebe o nome e perfil id

outra classe q se chama perfil e nela tenho id e nome do perfil

e quero q la na minha classe DAO

quando tentar fazer o login q ele carregue o nome do perfil atravez da agregação

abaixo mando algumas de minhas classes

classe carregar po id
public Perfil carregaPorId(int id) throws Exception{
    PreparedStatement pst;
        ResultSet rs;
        String sql = "SELECT * FROM perfil WHERE id=?";
        pst = conn.prepareStatement(sql);
        pst.setInt(1, id);
        rs = pst.executeQuery();
        Perfil p = new Perfil();
        if (rs.next()) {
            p.setId(rs.getInt("id"));
            p.setNome(rs.getString("nome"));

        }
        return p;
    }
metodo logar
public Usuario logar(Usuario usuario) throws Exception {
        Perfil p = new Perfil();
        PerfilDAO perfil = new PerfilDAO();
        Statement stm;
        ResultSet rs;
        stm = conn.createStatement();
        String sql = "SELECT * FROM usuario WHERE login='" + usuario.getLogin() + "' "
                + "";
        rs = stm.executeQuery(sql);
        if (rs.next()) {
            if (usuario.getSenha().equals(rs.getString("senha"))) {
                usuario.setId(rs.getInt("id"));
                usuario.setPerfilId(rs.getInt("pefil_id"));
                usuario.setPerfil(perfil.carregaPorId(rs.getInt("pefil_id")));
                usuario.setNome(rs.getString("nome"));
                usuario.setLogin(rs.getString("login"));
                usuario.setSenha(rs.getString("senha"));
                return usuario;
            }
        }
        return usuario;
    }

tento chamar ela aki

<%@page import="modelo.Usuario"%>
<%
    try {
        Usuario usuario = (Usuario) session.getAttribute("usuario");
        out.print(usuario.getPerfil());
        out.print(usuario.getNome());
    } catch (Exception erro) {
        out.print("<script language='javascript' type='text/javascript'>");
        out.print(" window.location = 'controle.jsp?acao=login';");
        out.print("</script>");
    }
%>

quanto tento efetuar o login da o seguinte erro

NullPointerException

4 Respostas

Hebert_Coelho

Onde você coloca o usuário na sessão?

Você está tomando o Nullpointer pois não existe usuário na sessão ainda. [=

glaucoheitor

Faltou o efetuarLogin

<%@page import="modelo.Usuario" %>
<%@page import="modelo.UsuarioDAO" %>
<%
        try {
                String login, senha;
                login = request.getParameter("login");
                senha = request.getParameter("senha");
                Usuario usuario = new Usuario();
                usuario.setLogin(login);
                usuario.setSenha(senha);

                UsuarioDAO usuarioDB = new UsuarioDAO();
                usuarioDB.conectar();
                usuario = usuarioDB.logar(usuario);
                
               
                if (usuario.getId() > 0) {
                    session.setAttribute("usuario", usuario);
                    response.sendRedirect("controle.jsp?acao=index");
                } else {
                    out.print("<script language='javascript' type='text/javascript'>");
                    out.print(" alert('Usuário ou senha inválidos!!');");
                    out.print(" window.location = 'controle.jsp?acao=login';");
                    out.print("</script>");
                }
                usuarioDB.desconectar();

            } catch (Exception e) {
                out.print(e);
            }
        %>

Ali no session.setAttibute é onde a session é setada.

glaucoheitor

Consegui.

Estava faltando conectar no BD.

Sim, podem me bater.

=(

S

glaucoheitor:
Consegui.

Estava faltando conectar no BD.

Sim, podem me bater.

=(

blz

depois me manda por email!!!

topico encerrado

Criado 15 de novembro de 2011
Ultima resposta 15 de nov. de 2011
Respostas 4
Participantes 3