wellington.nogueira:
Você precisa sobreescrever o método toString() da classe Usuario.
Esse é o retorno padrão do método na classe Object (que você implicitamente herda).
Entao
Fiz o q vc falou e deu praticamente o mesmo erro !
O q eu fiz:
Usuario usuario = new Usuario();
Sessao sessao = Sessao.getInstance();
sessao.setUsuario(usuario);
Sessao.getInstance().getUsuario();
System.out.println(sessao.toString());
o erro:
Logado com sucesso!!!
classes.Sessao@d18d189
Vou colar as classes envolvidas p ver se eu fiz alguma coisa errada !
public class Usuario {
/* VARIÁVEIS DE CONEXÃO COM O BANCO DE DADOS SUPORTE02 */
private String url = "jdbc:mysql://suporte02:3306/sasi";
private String login = "root";
private String senha = "suportedip";
/* VARIÁVEL DE CONTROLE DE ERROS DO BANCO DE DADOS */
private StringBuffer msg = new StringBuffer();
/* VARIÁVEIS UTILIZADAS FORA DA CLASSE USUÁRIO */
public String nome = "";
public String cadastro = "";
public Boolean resultado = false;
/* MÉTODO PRIVADO PARA CONEXÃO COM O BANCO DE DADOS */
private Connection ConectarBD(){
Connection conexao = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection(url, login, senha);
} catch (ClassNotFoundException cnfex) {
msg.append("Erro Driver!");
} catch (SQLException sqlex) {
msg.append("Não conectou ao banco!");
}
return conexao;
}
/* MÉTODO RESPONSÁVEL PELA VALIDAÇÃO DE USUÁRIO
* O MESMO RECEBE O LOGIN E SENHA E VERIFICA SE
* É O MESMO DO BANCO DE DADOS PARA CONFERÊNCIA
*/
public Boolean validarUsuario(String matricula, String senha) {
String sql = "";
Connection conexao = ConectarBD();
// INSERINDO A QUERY DO BANCO PARA PEGAR A SENHA ATRAVÉS DO NOME
sql += " select * from funcionarios";
sql += " where matricula = '"+matricula+"'";
sql += " and senha ='"+senha+"'";
// Validando o login e a senha com o retorno do registro
try {
Statement st = conexao.createStatement();
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
resultado = true;
nome = rs.getString("matricula");
}
conexao.close();
} catch (Exception e){
System.out.println("Erro na Validação!!!");
}
return resultado;
}
}
Essa parte do codigo chama a classe no usuario p fazer o login !
Esse codigo aqui, fica na acao do botao !
PS: O login ta perfeito, sem problemas.
String matricula = jTextField1.getText();
String senha = jPasswordField1.getText();
Usuario user = new Usuario();
boolean status = user.validarUsuario(matricula, senha);
if (user.resultado == true) {
String valor = matricula;
System.out.println("Logado com sucesso!!!");
Usuario usuario = new Usuario();
Sessao sessao = Sessao.getInstance();
sessao.setUsuario(usuario);
Sessao.getInstance().getUsuario();
System.out.println(sessao.toString());
//Abre o menu principal da app
Menu1 m1 = new Menu1();
m1.setVisible(true);
m1.setResizable(false);
this.setVisible(false);
} else {
// login novamente
JOptionPane.showMessageDialog(null, " Dados não conferem. Tente novamente! ");
jTextField1.setText(""); //limpando os campos
jPasswordField1.setText("");
}
A classe sessao, q eu peguei nesse topico !
package classes;
public class Sessao{
private static Sessao instance = null;
private Usuario usuario;
private Sessao(){
}
public void setUsuario(Usuario usuario){
this.usuario = usuario;
}
public Usuario getUsuario(){
return usuario;
}
public static Sessao getInstance(){
if(instance == null){
instance = new Sessao();
}
return instance;
}
}
Entao, o q eu to fazendo de errado ?
Abraço