Capturar ID de usuario logado
26/01/2013
0
Depois de logado, estou cadastrando personagens para esse usuario, porem precisava que esse personagem fosse cadastrado com o id do usuario logado.
Mas na hora de gravar o id do usuario ele me retorna null. Alguem sabe o q poderia ser?
Classe Personagem - Model
package br.com.jragonha.models; /** * Classe responsável pelos personagens * que um usuário pode criar * @author jilles.ragonha */ public class Personagem { private String nome; private String classe; private String raca; private String sexo; private int level; private Usuario usuario; public Usuario getUsuario() { return usuario; } public void setUsuario(Usuario usuario) { this.usuario = usuario; } public Personagem() { } public Personagem(Usuario usuario) { this.usuario = usuario; } public String getRaca() { return raca; } public void setRaca(String raca) { this.raca = raca; } public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getClasse() { return classe; } public void setClasse(String classe) { this.classe = classe; } }
Classe Usuario
package br.com.jragonha.models; /** * * @author jilles.ragonha */ public class Usuario { private String nome; private int id; private String senha; private String email; private String confirmacaoSenha; public Usuario() { } public Usuario(int id) { this.id = id; } public void setId(int id) { this.id = id; } public int getId() { return id; } public String getConfirmacaoSenha() { return confirmacaoSenha; } public void setConfirmacaoSenha(String confirmacaoSenha) { this.confirmacaoSenha = confirmacaoSenha; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } }
Bean Usuario
package br.com.jragonha.mbeans; import br.com.jragonha.bd.UsuarioDAO; import br.com.jragonha.models.Usuario; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; /** * * @author jilles.ragonha */ @ManagedBean @SessionScoped public class UsuarioMB implements Serializable{ private Usuario usuario = new Usuario(); private UsuarioDAO dao = new UsuarioDAO(); String outcome = null; public Usuario getUsuario() { return usuario; } public void setUsuario(Usuario usuario) { this.usuario = usuario; } public String cadastrarUsuario(){ if (dao.salvar(usuario)){ outcome = "CADASTRADO"; } return outcome; } public String alterarUsuario(){ return outcome; } }
Bean Personagem
package br.com.jragonha.mbeans; import br.com.jragonha.bd.PersonagemDAO; import br.com.jragonha.models.Classe; import br.com.jragonha.models.Personagem; import br.com.jragonha.models.Raca; import br.com.jragonha.models.Usuario; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; /** * * @author jilles ragonha */ @ManagedBean @RequestScoped public class PersonagemMB implements Serializable { private Personagem personagem = new Personagem(); private List<Classe> classes = new ArrayList<Classe>(); private List<Raca> racas = new ArrayList<Raca>(); private PersonagemDAO dao = new PersonagemDAO(); String outcome; public List<Raca> getRacas() { return racas; } public void setRacas(List<Raca> racas) { this.racas = racas; } public List<Classe> getClasses() { return classes; } public void setClasses(List<Classe> classes) { this.classes = classes; } public PersonagemDAO getDao() { return dao; } public void setDao(PersonagemDAO dao) { this.dao = dao; } public Personagem getPersonagem() { return personagem; } public void setPersonagem(Personagem personagem) { this.personagem = personagem; } /** * Método usado para salvar o personagem em um banco * @return */ public String salvarPersonagem() { if (dao.salvar(personagem)) { outcome = "SALVO"; } return outcome; } /** * Método que carrega todas as classes * existentes no banco * @return ArrayList com todas as classes */ public List<Classe> listarClasses() { classes = dao.listarClasses(); return classes; } /** * Método que carrega todas as reças vindas * do banco de dados em um selectOneMenu * @return ArrayList com todas as raças */ public List<Raca> listarRacas() { racas = dao.listarRacas(); return racas; } }
DAOS
USuario DAO
package br.com.jragonha.bd; import br.com.jragonha.models.Usuario; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author jilles.ragonha */ public class UsuarioDAO extends AbstractDAO<Usuario> { @Override public boolean salvar(Usuario usuario) { boolean salvo = false; Connection conexao = null; Usuario user = new Usuario(); try { conexao = GerenciadorConexoes.pegarInstancia().abrirConexao(); String sql = GerenciadorConexoes.pegarInstancia().pegarPropriedade("SALVAR_USUARIO"); PreparedStatement ps = conexao.prepareStatement(sql); ps.setString(1, usuario.getNome()); ps.setString(2, usuario.getEmail()); ps.setString(3, usuario.getSenha()); if (ps.executeUpdate() > 0) { salvo = true; } } catch (SQLException e) { Logger.getLogger("UsuarioDAO").log(Level.SEVERE, "Problemas na comunicação com o banco de dados"); Logger.getLogger("UsuarioDAO").log(Level.SEVERE, "Mensagem de exceção: ", e.getMessage()); } finally { GerenciadorConexoes.pegarInstancia().fecharConexao(conexao); } return salvo; } @Override public boolean remover(Usuario objeto) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public boolean atualizar(Usuario user) { Connection conexao = null; boolean atualizado = false; try { conexao = GerenciadorConexoes.pegarInstancia().abrirConexao(); PreparedStatement ps = conexao.prepareStatement(GerenciadorConexoes.pegarInstancia() .pegarPropriedade("USUARIO_ATUALIZAR")); ps.setString(1, user.getNome()); ps.setString(2, user.getEmail()); ps.setString(3, user.getSenha()); ps.setString(4, user.getNome()); if (ps.executeUpdate() > 0) { atualizado = true; } } catch (SQLException e) { Logger.getLogger("USUARIODAO").log(Level.SEVERE, "Problemas ao atualizar o usuario no banco de dados"); } finally { GerenciadorConexoes.pegarInstancia().fecharConexao(conexao); } return atualizado; } @Override public List<Usuario> listar() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }
PersonagemDAO
package br.com.jragonha.bd; import br.com.jragonha.models.Classe; import br.com.jragonha.models.Personagem; import br.com.jragonha.models.Raca; import br.com.jragonha.models.Usuario; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; /** * * @author jilles.ragonha */ public class PersonagemDAO extends AbstractDAO<Personagem> { /** * Método para salvar um personagem no banco de dados */ @Override public boolean salvar(Personagem personagem) { boolean salvo = false; Connection conexao = null; try { conexao = GerenciadorConexoes.pegarInstancia().abrirConexao(); String sql = GerenciadorConexoes.pegarInstancia().pegarPropriedade("SALVAR_CHAR"); PreparedStatement ps = conexao.prepareStatement(sql); ps.setInt(1,personagem.getUsuario().getId()); ps.setString(2, personagem.getNome()); ps.setString(3, personagem.getClasse()); ps.setString(4, personagem.getRaca()); ps.setString(5, personagem.getSexo()); ps.setInt(6, personagem.getLevel()); if (ps.executeUpdate() > 0) { salvo = true; } } catch (SQLException e) { e.printStackTrace(); } finally { GerenciadorConexoes.pegarInstancia().fecharConexao(conexao); } return salvo; }
Jilles Ragonha
Posts
28/01/2013
Davi Costa
Ou jogar na session mesmo e recuperar na classe UsuarioMB.
att Davi
29/01/2013
Jilles Ragonha
correto?
Seto os valores do usuario com o resultset e retorno akele usuario?
vou tentar fazer isso pelo menos eh o q fez sentido para mim huahuahuahua
abraços
29/01/2013
Davi Costa
att Davi
29/01/2013
Jilles Ragonha
Resolvi inserindo o usuario logado dentro da session
e depois recuperando para pegar o id do usuario
obrigado msm
27/07/2013
José
Estou dando a duvida por concluído.
Clique aqui para fazer login e interagir na Comunidade :)