Excluir do banco apenas algumas colunas selecionadas

3 respostas
N

Minha tabela pagamentos tem os seguintes Campos:

numero, cliente, data, valor1, vencimento1, parcela1, valor2, vencimento2, parcela2, valor3, vencimento3, parcela3, valor4, vencimento4, parcela4, valor5, vencimento5, parcela5, valor6, vencimento6, parcela6.

em minha JTable quando pesquiso em um botão as compras de um cliente pelo nome deste cliente, tenho como retorno o seguinte:

Número Cliente Valor Vencimento N° de parcelas
10000023 FULANO DE TAL 100.00 20/03/2013 1ª Parcela
10000023 FULANO DE TAL 100.00 20/04/2013 2ª Parcela
10000023 FULANO DE TAL 100.00 20/05/2013 3ª Parcela
10000023 FULANO DE TAL 100.00 20/06/2013 4ª Parcela
10000023 FULANO DE TAL 100.00 20/07/2013 5ª Parcela
10000023 FULANO DE TAL 100.00 20/08/2013 6ª Parcela

Quando seleciono uma linha da tabela acima e confirmo o pagamento de uma das parcelas, consigo apagar esta linha da tabela, e consequentemente apago todas as demais parcelas, isto porque está tudo em uma única linha, como faço para quando eu finalizar o pagamento de uma parcela apague apenas as colunas respectivas a esta parcelas, ou seja quando finalizo o pagamento da primeira parcela apague da tabela do banco apenas o valor1 e o vencimento1, 1ª parcela? estou usando este código:
String valorSelecionado = tbClientes.getValueAt(tbClientes.getSelectedRow(),tbClientes.getSelectedColumn()).toString();   
           int status = JOptionPane.showConfirmDialog(null,"Confirma o Pagamento do Cliente " +valorSelecionado+ "?","Atenção",JOptionPane.YES_NO_OPTION);   
           if (status == JOptionPane.YES_OPTION) {          
                   try{         
                  conexaoCliente.conecta();
                  String codigo = valorSelecionado;
                  int  registro = conexaoCliente.statement.executeUpdate("DELETE  from  consulta where  cliente ='" + codigo +"'");
                   }
                   catch (Exception ex){ 
                     ex.printStackTrace(); 
                  }

3 Respostas

lucaspolo

Cara, apagar coluna é meio relativo, talvez o conceito não seja apenas atualizar para nulo? Não existe um comando único para apagar valores individuais de colunas.

Outra coisa, pelo que eu vi a sua modelagem está desnormalizada, tente dividir melhor as suas entidades do banco, por exemplo criando a tabela cliente, uma tabela divida e a tabela de parcelas, fica muito mais simples, ai você pode apagar cada linha apenas da tabela parcela (não faça isso na verdade, apenas coloque uma flag de pago e mude ela para sim quando isto ocorrer)

N

Concordo com sua afirmação de atualizar para nulo, como devo fazer isto?
mande- me um exemplo, se porventura tenha.

M

Como comentou o lucaspolo, a sua estrutura da entidade está desnormalizada, para facilitar sua vida você poderia repensa-la e criar tabelas separadas para Clientes, Parcelas…
Caso opte por mante-la da forma que está, basta fazer um UPDATE na tabela, da seguinte forma “UPDATE TABELA SET valor1 = ’ ', vencimento1 = ’ ’ WHERE numero = ?”.

Criado 23 de fevereiro de 2013
Ultima resposta 26 de fev. de 2013
Respostas 3
Participantes 3