Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Método Lento

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>