@nanquim escreveu:
Tenho um método que está numa classe que é um JPanel. Esse método serve pra pegar as informações dos JTextFields. Ele cria um objeto com esses dados e passa pra classe gerenciadora de botões (que implementa action listener). Essa gerenciadora passa o objeto pra classe DAO inserir no BD.
Não sei se é a melhor forma, mas foi a solução que eu achei.Só que esse botão está demorando muito pra terminar de rodar. Alguém pode me dizer como deixar mais rápido?
Método:
public void createUserObject(){ //TODO Esse objeto é destruído quando o metodo for chamado outr vez? Usuario temp = new Usuario(); UsuarioDAO usrDAO = new UsuarioDAO(); temp.setNome(txtNome.getText()); temp.setSobrenome(txtSobrenome.getText()); temp.setUsuario(txtUsuario.getText()); temp.setTelefone(txtTelefone.getText()); if(emailValido(txtEmail.getText()) == true){ temp.setConta(txtEmail.getText(), pass.getPassword()); }else{ JOptionPane.showMessageDialog(null, "Email Inválido"); } temp.setDtNascimento(txtDtNasc.getText()); if(!usrDAO.saveUserData(temp)){ JOptionPane.showMessageDialog(null, "Erro ao salavar dados no BD"); }else{JOptionPane.showMessageDialog(null, "Salvo com sucesso");} }
Método que valida o email - na mesma classe do metodo acima
public boolean emailValido(String email){ if(email != null && email.trim().length() > 0){ String regexEmail = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"; Pattern pattern = Pattern.compile(regexEmail, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email); if(matcher.matches()){ return true; } } return false;
O Método saveUserData: - classe dao
public boolean saveUserData(Usuario u){ sql = "INSERT INTO Conta (id_conta, email, senha) VALUES" + "(?,?,?)"; try{ ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(2, u.getConta().getEmail()); String pass = new String(u.getConta().getPass()); ps.setString(3, pass); ps.executeUpdate(); try{ ResultSet chave = ps.getGeneratedKeys(); if(chave.next()){ int fkConta = chave.getInt(1); u.getConta().setId(fkConta); } }catch(SQLException e){ System.err.println("Erro ao recuperar chave estrangeira\n"); e.printStackTrace(); } saveUser(u); return true; }catch(SQLException e){ System.err.println("Erro ao inserir conta\n"); e.printStackTrace(); return false; }
Mensagens: 3
Participantes: 3