Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
Montesuma Oliveira

Errro no método Alterar - Java e MySQL

Recommended Posts

Mestres do Java, estou trabalhando em um projeto da faculdade, usando camadas MVC, e estou com problemas no método alterarCliente. Quando clico no botão Alterar, no formulário, ele envia uma mensagem dizendo que o cliente foi alterado com sucesso, mas ao pesquisar o cliente alterado, o mesmo não fez a alteração. Gostaria de saber onde estou errando. Segue abaixo as minhas classes:
Classe Conexão com o MySQL:
<code>
    /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uniplan.DAL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 *
 * @author Montesuma Oliveira
 */
public class ConexaoMySQL {
     public Connection con;
     public PreparedStatement ps;
     public ResultSet rs;
     public String sql;
     public void abrirBD()throws Exception
     {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/ipil_ltda";
        String user = "root";//Seu nome de usuário.
        String password = "uniplan";  //Sua senha.
        con = DriverManager.getConnection(url, user, password);
     }
    public void fecharBD() throws Exception
    {
        if(con != null)
        {
            con.close();
        }
    }   
}

</code>

Classe ClienteDAL:

<code>

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uniplan.DAL;
import br.uniplan.DTO.ClienteDTO;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author Montesuma Oliveira */
public class ClienteDAL extends ConexaoMySQL {
    public void incluirCliente(ClienteDTO cliente) throws Exception
    {
        //Prepara a conexão com o MySQL
        abrirBD();
        sql = "INSERT INTO clientes (cli_nome, cli_dt_inclusao, cli_endereco, cli_bairro, cli_email, cli_tel, cli_cidade, cli_uf) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
        ps = con.prepareStatement(sql);
        //Busca os valores da classe clientesDTO
        //ps.setLong(1, cliente.getCli_id());
        ps.setString(1, cliente.getCli_nome());
        ps.setDate(2, new java.sql.Date(cliente.getCli_dt_inclusao().getTime()));
        ps.setString(3, cliente.getCli_endereco());
        ps.setString(4, cliente.getCli_bairro());
        ps.setString(5, cliente.getCli_email());
        ps.setString(6, cliente.getCli_tel());
        ps.setString(7, cliente.getCli_cidade());
        ps.setString(8, cliente.getCli_uf());
        ps.execute();
        fecharBD();
    }
    public ClienteDTO selecionarClientePorID(Integer cli_id)throws Exception
    {
        abrirBD();
        sql = "SELECT * FROM clientes WHERE cli_id=?";
        ps = con.prepareStatement(sql);
        ps.setInt(1, cli_id);
        rs = ps.executeQuery();
        ClienteDTO cliente = new ClienteDTO();
        if(rs.next())
        {
            cliente.setCli_id(rs.getInt("cli_id"));
            cliente.setCli_nome(rs.getString("cli_nome"));
            cliente.setCli_dt_inclusao(rs.getDate("cli_dt_inclusao"));
            cliente.setCli_endereco(rs.getString("cli_endereco"));
            cliente.setCli_bairro(rs.getString("cli_bairro"));
            cliente.setCli_email(rs.getString("cli_email"));
            cliente.setCli_tel(rs.getString("cli_tel"));
            cliente.setCli_cidade(rs.getString("cli_cidade"));
            cliente.setCli_uf(rs.getString("cli_uf"));
            fecharBD();           
        }
        return cliente;
    }
    //Método que vai selecionar todos os clientes no nosso Banco de Dados
    //e ordenar por nome do cliente
     public List selecionarListaClientes() throws Exception
     {
         abrirBD();
         sql = "SELECT * FROM clientes ORDER BY cli_nome";
         ps = con.prepareStatement(sql);
         rs = ps.executeQuery();
         List listaClientes = new ArrayList();
         while(rs.next())
         {
             ClienteDTO cliente = new ClienteDTO();
             cliente.setCli_id(rs.getInt("cli_id"));
             cliente.setCli_nome(rs.getString("cli_nome"));
             cliente.setCli_dt_inclusao(rs.getDate("cli_dt_inclusao"));
             cliente.setCli_endereco(rs.getString("cli_endereco"));
             cliente.setCli_bairro(rs.getString("cli_bairro"));
             cliente.setCli_email(rs.getString("cli_email"));
             cliente.setCli_tel(rs.getString("cli_tel"));
             cliente.setCli_cidade(rs.getString("cli_cidade"));
             cliente.setCli_uf(rs.getString("cli_uf"));
             listaClientes.add(cliente);        
         }
         fecharBD();
         return listaClientes;
     }
     //Método que vai fazer as alterações necessárias nos dados dos clientes
     //selecionados por seu código no nosso Banco de Dados
     public void alterarCliente(ClienteDTO cliente) throws Exception
     {
         abrirBD();        
         sql = "UPDATE clientes SET cli_nome = ?, cli_dt_inclusao = ?, cli_endereco = ?, cli_bairro = ?, cli_email = ?, cli_tel = ?, cli_cidade = ?, cli_uf = ? WHERE cli_id = ?";
         ps = con.prepareStatement(sql);
         ps.setLong(1, cliente.getCli_id());
         ps.setString(2, cliente.getCli_nome());
         ps.setDate(3, new java.sql.Date(cliente.getCli_dt_inclusao().getTime()));
         ps.setString(4, cliente.getCli_endereco());
         ps.setString(5, cliente.getCli_bairro());
         ps.setString(6, cliente.getCli_email());
         ps.setString(7, cliente.getCli_tel());
         ps.setString(8, cliente.getCli_cidade());
         ps.setString(9, cliente.getCli_uf());
         ps.execute();
         fecharBD();
     }
     public void excluirCliente(Integer cli_id) throws Exception
     {
         abrirBD();
         sql = "DELETE FROM clientes WHERE cli_id=?";
         ps = con.prepareStatement(sql);
         ps.setInt(1, cli_id);
         ps.execute();
         fecharBD();
     }
}

</code>

Classe ClienteDTO:
 
<code>
    /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uniplan.DTO;
import java.util.Date;
/**
 *
 * @author Montesuma Oliveira
*/
public class ClienteDTO {
    private long cli_id;
    private String cli_nome;
    private Date cli_dt_inclusao;
    private String cli_endereco;
    private String cli_bairro;
    private String cli_email;
    private String cli_tel;
    private String cli_cidade;
    private String cli_uf;
   
    public long getCli_id()
    {
        return cli_id;
    }   
    public void setCli_id(int cli_id)
    {
        this.cli_id = cli_id;
    }
   
    public String getCli_nome()
    {
        return cli_nome;
    }   
    public void setCli_nome(String cli_nome)
    {
        this.cli_nome = cli_nome;
    }
   
    public Date getCli_dt_inclusao()
    {
        return this.cli_dt_inclusao;
    }   
    public void setCli_dt_inclusao(Date cli_dt_inclusao)
    {
        this.cli_dt_inclusao = cli_dt_inclusao;
    }
   
    public String getCli_endereco()
    {
        return cli_endereco;
    }   
    public void setCli_endereco(String cli_endereco)
    {
        this.cli_endereco = cli_endereco;
    }
   
    public String getCli_bairro()
    {
        return cli_bairro;
    }   
    public void setCli_bairro(String cli_bairro)
    {
        this.cli_bairro = cli_bairro;
    }
   
    public String getCli_email()
    {
        return cli_email;
    }
    public void setCli_email(String cli_email)
    {
        this.cli_email = cli_email;
    }   
   
    public String getCli_tel()
    {
        return cli_tel;
    }
    public void setCli_tel(String cli_tel)
    {
        this.cli_tel = cli_tel;
    }
   
    public String getCli_cidade()
    {
        return cli_cidade;
    }
    public void setCli_cidade(String cli_cidade)
    {
        this.cli_cidade = cli_cidade;
    }
   
    public String getCli_uf()
    {
        return cli_uf;
    }
    public void setCli_uf(String cli_uf)
    {
        this.cli_uf = cli_uf;
    }
   
}
</code>
 
Código do Botão Alterar Cliente:
<code>
        private void btnAlterarCliActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
         // fazendo a validação dos dados, o método isEmpty que devolve true se a String for vazia ou false se a mesma nã estiver vazia
        if ((txtNomeCli.getText().isEmpty()) || (ftfDtInclusaoCli.getText().isEmpty()) || (txtEnderecoCli.getText().isEmpty())
                || (txtBairroCli.getText().isEmpty()) || (ftfTelCli.getText().isEmpty()) || (txtCidadeCli.getText().isEmpty())
                || (txtUFCli.getText().isEmpty()))
        {
            JOptionPane.showMessageDialog(null, "Verifique Se Tem Algum Campo Vazio !!!!");
            //O cursor do mouse vai se posicionado no campo Código do Cliente
            txtCodigoCli.requestFocus();
        }
        else
        {
            // instanciando a classe ClientesDTO do pacote DTO e criando seu objeto cliente
            ClienteDTO cliente = new ClienteDTO();
            // Instancia a classe ClienteDAL
            ClienteDAL dal = new ClienteDAL();
             //Formatando a data
            SimpleDateFormat dti = new SimpleDateFormat("dd/MM/yyyy");
            cliente.setCli_id(Integer.parseInt(txtCodigoCli.getText()));
            cliente.setCli_nome(txtNomeCli.getText());
            //Verifica se a data esta formatada e faz o tratamento do erro de Parseamento
            try
            {
                cliente.setCli_dt_inclusao(new java.sql.Date(dti.parse(ftfDtInclusaoCli.getText()).getTime()));
            }
            catch (ParseException ex)
            {
            }
            //Mostra os dados que estão gravados na tabela Clientes
            cliente.setCli_endereco(txtEnderecoCli.getText());
            cliente.setCli_bairro(txtBairroCli.getText());
            cliente.setCli_email(txtEmailCli.getText());
            cliente.setCli_tel(ftfTelCli.getText());
            cliente.setCli_cidade(txtCidadeCli.getText());
            cliente.setCli_uf(txtUFCli.getText());
            try
            {
                // Chama o método alterarCliente da Classe ClienteDAL
                dal.alterarCliente(cliente);
            }
            catch (Exception ex)
            {
                Logger.getLogger(frmClientes.class.getName()).log(Level.SEVERE, null, ex);
            }
            JOptionPane.showMessageDialog(null, "Cliente " + cliente.getCli_nome() + " Alterado Com Sucesso !!!!");
        }       
    }

</code>

Todos os outros métodos estão funcionando, somente o Alterar Cliente não funciona, quem puder ajudar, eu agradeço de antemão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×