Capturar ID de usuario logado
Olá galera, implementei uma pagina de login e no login ele puxa todas as informações do usuario logado (select * from usuario) e meu bean esta como sessao.
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
Classe Usuario
Bean Usuario
Bean Personagem
DAOS
USuario DAO
PersonagemDAO
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
Curtidas 0
Respostas
Davi Costa
26/01/2013
No momento do login em caso de sucesso vc deve setar em UsuarioMB o usuário.
Ou jogar na session mesmo e recuperar na classe UsuarioMB.
att Davi
Ou jogar na session mesmo e recuperar na classe UsuarioMB.
att Davi
GOSTEI 0
Jilles Ragonha
26/01/2013
Então ao invés de meu LOGINDAO retornar um boolean como por exemplo salvo ou nao, deveria retornar um Usuario
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
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
GOSTEI 0
Davi Costa
26/01/2013
Isso mesmo, pode resolver. Mas tb é bom abrir a cabeça para o que existe ai a fora... imagina vc vai reiventar a roda existindo diversos frameworks que faz o que vc ker, já testados, homologados e te dão mais algumas possibilidades. Sem dizer que vai ser mais um novo aprendizado para vc
att Davi
att Davi
GOSTEI 0
Jilles Ragonha
26/01/2013
cara agradeço
Resolvi inserindo o usuario logado dentro da session
e depois recuperando para pegar o id do usuario
obrigado msm
Resolvi inserindo o usuario logado dentro da session
e depois recuperando para pegar o id do usuario
obrigado msm
GOSTEI 0
José
26/01/2013
Amigo obrigado pelo retorno, e obrigado por compartilhar a solução com a gente!
Estou dando a duvida por concluído.
Estou dando a duvida por concluído.
GOSTEI 0