Good morning,
I need to fix a problem when I request in the "dao.Acess" the get of the Class model.User returns empty = null.
When it is called: doLogin (model.Access access) I can see the information through JOptionPane now when I do the same in: updateUsuario (model.Access access) nothing is displayed!
Class: model.Access
public class Acessar {
// Variables private String name; private String password; private String group; private Access Date;
// Getters & Setters
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;
}
public String getGrupo() {
return grupo;
}
public void setGrupo(String grupo) {
this.grupo = grupo;
}
public Date getAcesso() {
return acesso;
}
public void setAcesso(Date date) {
this.acesso = date;
}
// Builders
// Usuário e Senha
public Acessar(String nome, String senha) {
this.nome = nome;
this.senha = senha;
}
// Acesso
public Acessar(Date acesso) {
this.acesso = acesso;
}
}
Class: dao.Access
public class Acessar {
public static Connection con = dao.ConectarDB.getConexao();
public static String doLogin(model.Acessar acessar) {
// Variáveis
PreparedStatement ps = null;
String sql = null;
ResultSet rs = null;
ResultSet autenticacao = null;
ResultSet grupo = null;
sql = "select * from usuario where nome=? and senha=?";
// Validar Usuário
try {
ps = ConectarDB.getConexao().prepareStatement(sql);
ps.setString(1, acessar.getNome());
ps.setString(2, acessar.getSenha());
rs = ps.executeQuery();
autenticacao = rs;
// Validar Grupo
try {
ps = null;
sql = null;
rs = null;
sql = "select * from usuario where grupo=?";
ps = con.prepareStatement(sql);
ps.setString(1, "Suporte");
rs = ps.executeQuery();
grupo = rs;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
// Autenticação do Usuário
if(autenticacao.next()) {
// Grupo do Usuário
if(grupo.next()) {
} else {
return null;
}
return "Suporte";
} else {
return "erro";
}
} catch (SQLException ex) {
ex.printStackTrace();
return "erro";
}
}
// Atualizar Acesso do Usuário
public void atualizarUsuario(model.Acessar acessar) {
// Variáveis
PreparedStatement ps = null;
String sql = "update usuario set acesso=? where nome=?";
// Inserção
try {
ps = con.prepareStatement(sql);
ps.setDate(1, new Date(acessar.getAcesso().getTime()));
ps.setString(2, acessar.getNome());
JOptionPane.showMessageDialog(null, "Nome: " + acessar.getNome()); // Mostra = null, por que?
ps.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
view.Access (jFrame)
// Botão Ok
btnOk = new JButton("Ok");
btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Capturar Campos
String nome = tfNome.getText();
String senha = new String (pfSenha.getPassword());
// Validar Usuário
model.Acessar acessar = new model.Acessar(nome, senha);
String autenticar = dao.Acessar.doLogin(acessar);
// Validar Conexão com a Internet
try {
Socket socket = null;
socket = new Socket("www.google.com.br", 80);
socket.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "Computador sem acesso a Internet!", "Informação", JOptionPane.WARNING_MESSAGE);
}
// Validar Conexão com Banco de Dados PostGreSQL
try {
ConectarDB db = new ConectarDB();
db.main(null);
} catch (Exception e1) {
e1.printStackTrace();
}
// Autenticar Usuário
if(autenticar != "erro") {
// Capturar Data e Hora e Atualizar
java.util.Date date = new java.util.Date();
model.Acessar acessarM = new model.Acessar(date);
// Atualizar Tabela do Usuário com Ultimo Acesso
dao.Acessar uAtualizar = new dao.Acessar();
uAtualizar.atualizarUsuario(acessarM);
JOptionPane.showMessageDialog(null, acessarM.getAcesso(), "Informação", JOptionPane.INFORMATION_MESSAGE);
// Abrir a Janela do Sistema
if(autenticar == "Suporte") {
JOptionPane.showMessageDialog(null, "Você pertence ao Grupo de (Suporte)", "Informação", JOptionPane.INFORMATION_MESSAGE);
new Sistema().main(null);
dispose();
}
} else if (autenticar == "erro"){
JOptionPane.showMessageDialog(null, "Nome ou senha inválidos, favor verificar.", "Informação", JOptionPane.ERROR_MESSAGE);
}
}
});