[RESOLVIDO]Formatação de CEP (MaskFormatter)MySql

10 respostas
Janerson

Ola Boa noite!!!

Tenho uma tabela de cep(peguei na internet) no meu BD MySql, so que os dados dos ceps nao estão no formato padrão “#####-###” esses dados estao inserido assim “########”
mas na minha aplicação quero colocar para cadastro de cep no formato padrao para facilitar a inserção pelo usuario…

agora vem a duvida

Tem como alterar todas as faixas de ceps do meu bd inserindo um traço " - " via sql de uma vez só? se tiver como faço isso?

ou tem como pegar o texto da jFormattedTextField e com uma funçao retirar esse “-” traço para poder inserir no bd?

pois assim facilitaria na busca posteriormente

// Ex: de consulta fica muito estranho SELECT c.cep, c.logradouro, c.bairro, c.cidade, c.estado FROM cep c WHERE c.cep = '74969-030' OR c.cep = '74969030';

ficaria melhor para consulta assim:

SELECT c.cep, c.logradouro, c.bairro, c.cidade, c.estado FROM cep c
  WHERE c.cep = '74969-030';

Ou assim:

SELECT c.cep, c.logradouro, c.bairro, c.cidade, c.estado FROM cep c
  WHERE c.cep = '74969030';

10 Respostas

Roselito_Favero_da_S

Faça assim:

update cep c set c.cep=substring(cep,1,5)||'-'||substring(cep,6,3)

Não se esqueça de aumentar o tamanho da coluna cep antes de fazer isso, e fazer uma cópia de segurança da sua tabela antes, também…

drsmachado

Não faça assim e não faça de jeito algum.
O banco de dados serve para armazenar dados e não formatar. A formatação é responsabilidade da camada de apresentação.
Salvo se você for ensinar SQL para os usuários… Coisa que acredito que não será feita.

Janerson

drsmachado:
Não faça assim e não faça de jeito algum.
O banco de dados serve para armazenar dados e não formatar. A formatação é responsabilidade da camada de apresentação.
Salvo se você for ensinar SQL para os usuários… Coisa que acredito que não será feita.

Bom dia
o bd nao vai formartar os dados…
o que acontece é que na minha base de dados os ceps estão assim 74969030
e na camada de apresentação ao usuario ele aparece assim ------> 74969-030
mas caso o cep nao exista na minha base de dados eu quero cadastrar o mesmo, so que quando uso o getText(), ele me retorno o cep desse modelo 74969-030
entao se eu for inserir esse novo cep no bd aquele traço vai junto. o que eu quero entao é ou atualizar toda as faixas de cep do meu bd inserindo um “-” ou
um modo de quando eu der um getText() ele retirar o traço e inserir no bd assim 74969030

Para melhor entendimento BD -----> 74969030 acrescentar o traço para ficar padronizado
ou
Apresentação para o Usuario -----> 74969-030 retirar o traço para poder inserir no mesmo formato do BD

o que vc me aconselha entao?

Janerson

Roselito Fávero da Silva:
Faça assim:

update cep c set c.cep=substring(cep,1,5)||'-'||substring(cep,6,3)

Não se esqueça de aumentar o tamanho da coluna cep antes de fazer isso, e fazer uma cópia de segurança da sua tabela antes, também…

OK tenho uma base de teste vou tentar isso a noite

drsmachado

Engraçado, lendo teu tópico original, achei que queria exatamente o oposto do que acabou de dizer…

Janerson:

Tem como alterar todas as faixas de ceps do meu bd inserindo um traço " - " via sql de uma vez só? se tiver como faço isso?

Aconselho a decidir o que quer, primeiramente,
Depois, aprenda a trabalhar com JFormattedTextField e, por último, aprenda a tratar dados que são inseridos pelos usuários de forma a deixar apenas números, apenas letras ou impedir letras, números, caracteres especiais e assim por diante.
Mais uma vez, bancos de dados servem para guardar os dados sem formatação.

Janerson

OK foi falha ao mim expressar
vou ler a documentaçao do JFormattedTextField

Janerson

drsmachado:
Não faça assim e não faça de jeito algum.
O banco de dados serve para armazenar dados e não formatar. A formatação é responsabilidade da camada de apresentação.
Salvo se você for ensinar SQL para os usuários… Coisa que acredito que não será feita.

VLW drsmachado
consegui fazer assim, era isso que voçê queria me dizer

String remove ,  cep = "#####-###";      
       remove = cep.substring(0 , 5)+cep.substring(6);       
       System.out.println("Removido: " + remove);
marcospaulo.suporte

Ou vc poderia usar a função replace.

String cep = campo_cep.getText().replace('-','')

Nesse caso, irá pegar só os numeros.

Janerson

marcospaulo.suporte:
Ou vc poderia usar a função replace.

String cep = campo_cep.getText().replace('-','')

Nesse caso, irá pegar só os numeros.

Vlw pela dica

Janerson

Roselito Fávero da Silva:
Faça assim:

update cep c set c.cep=substring(cep,1,5)||'-'||substring(cep,6,3)

Não se esqueça de aumentar o tamanho da coluna cep antes de fazer isso, e fazer uma cópia de segurança da sua tabela antes, também…


Testei a nivel de curiosidade em uma base de teste e nao funcionou, alias setou o valor 1 para todas as faixas de ceps

Criado 21 de novembro de 2013
Ultima resposta 21 de nov. de 2013
Respostas 10
Participantes 4