Problema ao fazer alteração de duas Tabelas modelo mvc

25/07/2018

4

Olá, estou tendo problema em alterar duas tabelas. O endereço altera, porém o cliente não, ele obtêm os dados do banco só que na hora de alterar e depois salvar ele aparece salvo só que não faz a alteração. No banco o Cliente é a principal Chave Primaria, e o Endereço com a Chave Estrangeira que depende da Cliente.

public static void atualizarCliente(Cliente cliente)
throws SQLException, Exception {

String sql = "UPDATE mydb.cliente SET nome_cliente=?, sexo_cliente=?, rg_cliente=?, cpf_cliente=?, data_nasc_cliente=?, email_cliente=?, celular_cliente=?, telefone_cliente=? + WHERE (id_cliente=?)";

String sql1 = "UPDATE mydb.end_cliente SET rua_cliente=?, numero_cliente=?, bairro_cliente=?, cidade_cliente=?, uf_cliente=?, cep_cliente=?, complemento_cliente=?"
+ "WHERE(cliente_id_cliente=?)";

Connection connection = null;

PreparedStatement preparedStatement = null;
try {


connection = ConnectionUtils.getConnection();

preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, cliente.getId());
preparedStatement.setString(2, cliente.getNome());
preparedStatement.setString(3, cliente.getSexo());
preparedStatement.setString(4, cliente.getRg());
preparedStatement.setString(5, cliente.getCpf());
Timestamp t = new Timestamp(cliente.getDataNasc().getTime());
preparedStatement.setTimestamp(6, t);
preparedStatement.setString(7, cliente.getEmail());
preparedStatement.setString(8, cliente.getCelular());
preparedStatement.setString(9, cliente.getTelefone());

preparedStatement = connection.prepareStatement(sql1);
preparedStatement.setString(1, cliente.getRua());
preparedStatement.setString(2, cliente.getNumero());
preparedStatement.setString(3, cliente.getBairro());
preparedStatement.setString(4, cliente.getCidade());
preparedStatement.setString(5, cliente.getUf());
preparedStatement.setString(6, cliente.getCep());
preparedStatement.setString(7, cliente.getComplemento());
preparedStatement.setInt(8, cliente.getId());

preparedStatement.execute();

} finally {

if (preparedStatement != null && !preparedStatement.isClosed()) {
preparedStatement.close();
}

if (connection != null && !connection.isClosed()) {
connection.close();
}
}
}
Jussara Andrade

Jussara Andrade

Responder

Post mais votado

31/07/2018

Faltou o comando preparedStatement.execute(); Para executar.
Como você esta usando o mesmo objeto, você está sobre escrevendo as instruções SQL e não está de fato salvando nada.
Neste trecho:
preparedStatement.setString(9, cliente.getTelefone());

preparedStatement = connection.prepareStatement(sql1);
preparedStatement.setString(1, cliente.getRua());
Trocar para:
preparedStatement.setString(9, cliente.getTelefone());
preparedStatement.execute();

preparedStatement = connection.prepareStatement(sql1);
preparedStatement.setString(1, cliente.getRua());

Carlos Augusto

Carlos Augusto
Responder

Mais Posts

07/08/2018

Jussara Andrade

Guto, obrigado vou dar verificada nesse detalhe.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar