Estou com dúvida sobre o login, tenho os campos usuario e senha na view e os botoes entrar e cancelar, logo quando eu clicar no botão entrar eu quero verificar se o usuario e senha existem. Eu tenho também uma coluna na tabela Usuario de Perfil que é Administrador ou funcionário. O que eu quero fazer é quando fazer essa busca de procurar se o usuario e senha existem e se coincidem, quero também fazer para abrir um menu principal para o Adm, e outro menu para o funcionário.
Segue meu código:
Essa parte está na View
public String validaDados()
{
String valida = "";
if (txtUsuario.getText().equals(""))
{
valida = valida + "\nInforme um Usuário";
txtUsuario.setBorder(BorderFactory.createLineBorder(Color.RED));
} else
{
txtUsuario.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
if (txtSenha.getText().equals(""))
{
valida = valida + "\nInforme uma Senha";
txtSenha.setBorder(BorderFactory.createLineBorder(Color.RED));
} else
{
txtSenha.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
return valida;
}
private void btnEntrarActionPerformed(java.awt.event.ActionEvent evt)
{
String Valida = validaDados();
if (Valida.equals(""))
{
Usuario u = new Usuario();
u.setUsuario(txtUsuario.getText());
u.setSenha(txtSenha.getText());
if (ctrusu.recuperaDadosUsuario(u))
{
if (u.getPerfil().equals("Administrador")) // Usuario Administrador
{
// depois validar senha
if (!ctremp.buscaEmpresa())
{
(new frmCadEmpresa(null, true, 0)).setVisible(true);
} else
{
JOptionPane.showMessageDialog(null, "\n Login realizado com Sucesso!!\n\nBEM - VINDO " + txtUsuario.getText().toUpperCase(),
"Bem vindo", JOptionPane.INFORMATION_MESSAGE, iconeSucesso);
new frmMenuPrincipal().setVisible(true);
}
dispose(); // minimiza a tela login usuario "administrador"
} else // Usuario Funcionário
{
JOptionPane.showMessageDialog(null, "\n Login realizado com Sucesso!!\n\nBEM - VINDO " + txtUsuario.getText().toUpperCase(),
"Bem vindo", JOptionPane.INFORMATION_MESSAGE, iconeSucesso);
new frmMenuPrincipalFuncionario().setVisible(true);
}
dispose(); // minimiza a tela login usuario "funcionario"
} else
{
JOptionPane.showMessageDialog(null, "Erro ao entrar, usuário ou senha inválido!!",
"Erro ao cadastrar", JOptionPane.INFORMATION_MESSAGE, iconeErro);
}
} else
{
JOptionPane.showMessageDialog(null, "\nPor favor preencha os campos obrigatórios!!\n" + Valida,
"Erro - campos obrigatórios", JOptionPane.INFORMATION_MESSAGE, iconeErro);
}
}
Isso esta dentro da Controladora e a controladora chama a DAO, mas irei colocar apenas a DAO que é quem faz o processo
public boolean recuperaDadosUsuario(Usuario usuario)
{
Usuario u;
String query = "select usu_cod, usu_nome, usu_login, usu_senha, usu_perfil, usu_status from usuario where usu_login='" + usuario.getUsuario() + "' AND usu_senha='" + usuario.getSenha() + "' AND usu_perfil='" + usuario.getPerfil() + "'";
ResultSet rs = Banco.getCon().consultar(query);
try
{
if (rs.next())
{
// u = new Usuario();
// u.setCodigo(rs.getInt("usu_cod"));
// u.setNome(rs.getString("usu_nome"));
// u.setUsuario(rs.getString("usu_login"));
// u.setSenha(rs.getString("usu_senha"));
// u.setPerfil(rs.getString("usu_perfil"));
// u.setStatus(rs.getString("usu_status"));
return true;
}
} catch (Exception e)
{
return false;
}
return false;
}
Se alguém tiver alguma ideia por favor me ajude