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:
/*
* 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();
}
}
}
Classe ClienteDAL:
/*
* 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();
}
}
Classe ClienteDTO:
/*
* 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;
}
}
Código do Botão Alterar Cliente:
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 !!!!");
}
}
Todos os outros métodos estão funcionando, somente o Alterar Cliente não funciona, quem puder ajudar, eu agradeço de antemão.
Pergunta
Montesuma Oliveira
/* * 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(); } } }
Classe ClienteDAL:
/* * 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(); } }
Classe ClienteDTO:
/* * 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; } }
Código do Botão Alterar Cliente:
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 !!!!"); } }
Todos os outros métodos estão funcionando, somente o Alterar Cliente não funciona, quem puder ajudar, eu agradeço de antemão.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.