Bom dia
Pessoal
Necessito lançar um calendar = null se o campo não for preenchido.
Mais está gerando uma data 01/01/1970.
Sempre que o campo é null.
O que faço?
Bom dia
Pessoal
Necessito lançar um calendar = null se o campo não for preenchido.
Mais está gerando uma data 01/01/1970.
Sempre que o campo é null.
O que faço?
[quote=mateuscs]Bom dia
Pessoal
Necessito lançar um calendar = null se o campo não for preenchido.
Mais está gerando uma data 01/01/1970.
Sempre que o campo é null.
O que faço?[/quote]
faz um if se o campo calendar for null ele manda null para
o seu calendar. espero que ajude,
Não é mandar Null para o Calendar
é para mandar Null para o tipo Date do Banco, usando Calendar.
Posta o trecho de código que vc tá usando que fica mais fácil te auxiliar.
Falou.
[quote=mateuscs]Não é mandar Null para o Calendar
é para mandar Null para o tipo Date do Banco, usando Calendar.[/quote]
Oi!
Com certeza tu não envia um calendar ao banco mas sim o getTime(), certo?
Simplesmente, se o campo que diz não for preenchido, ao invés de enviar o Calendar, envie um null.
Isso resolve o seu problema, não?
Caso contrário, poste o código.
Abraços.
[code]Calendar date = new GregorianCalendar();
if (ano.equals(""))//Valor String
date.equals(null);
else
date.set(Calendar.YEAR, Integer.parseInt(ano));
if (mes.equals(""))//Valor String
date.equals(null);
else
date.set(Calendar.MONTH, Integer.parseInt(mes)-1);
if (dia.equals(""))//Valor String
date.equals(null);
else
date.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dia)); [/code]
[quote=mateuscs][code]Calendar date = new GregorianCalendar();
if (ano.equals(""))//Valor String
date.equals(null);
else
date.set(Calendar.YEAR, Integer.parseInt(ano));
if (mes.equals(""))//Valor String
date.equals(null);
else
date.set(Calendar.MONTH, Integer.parseInt(mes)-1);
if (dia.equals(""))//Valor String
date.equals(null);
else
date.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dia)); [/code][/quote]
Colega, achei confuso esse seu código, poste a classe ou ao menos o seu método completo.
É possível?
E recomendo utilizar o trim antes do equals e também o método isEmpty, ai não precisa desse equals.
nel
Achei a solução
O problema estava em quando irei setar no Banco.
Resolvi da seguinte forma
[code] if(classe.getData()==null){
Date data = new Date();
data=null;
AtualizacaoBANCO.setDate(INDEX, (java.sql.Date) data);
else
AtualizacaoBANCO.setDate(INDEX, new java.sql.Date(classe.getData()…getTimeInMillis()));
[/code]
Desculpe, mais achei que não esta claro.
Explicação:
Quero que meu campo no banco de dados receba NULL se o usuário não digitar Data.(Campo Não Obrigatório).
Para isso, estava usando getters and setters, para receber as Strings e tranforma-las em int.
Logo as int’s eram tranformadas em Calendar YEAR MONTH DAY_OF_MONTH.
Para isso utilizei a seguinte forma.
Criamos um objeto tipo Calendar.
OBJETO recebe Year, Month, Day_of_month.
Se qualquer um deles for “”(String vazia).
OBJETO(Tipo Calendar) = null;
Ai que ficou a dúvida, o banco não conseguia receber o tipo Date Null.
O get Data, recebe o OBJETO CALENDAR = null.
então fizemos:
[code]if(classe.getData()==null){
Date data = new Date();
data=null;
AtualizacaoBANCO.setDate(INDEX, (java.sql.Date) data);
else
AtualizacaoBANCO.setDate(INDEX, new java.sql.Date(classe.getData()…getTimeInMillis())); [/code]
Qualquer dúvida pessoal, poste aqui, vamos tentar ser bem claros, para que todos possam acessar a solução.
Mateus, me explica porque você instancia um Objeto, na linha seguinte faz a variavél de instancia receber null e seta o valor em uma propriedade?
Porque simplesmente não seta o null diretamente ou faz o seu Objeto receber o null, ao invés de instancia-lo?
Assim ó:
if(classe.getData() == null){
AtualizacaoBANCO.setDate(INDEX, null);
else
AtualizacaoBANCO.setDate(INDEX, new java.sql.Date(classe.getData().getTimeInMillis()));
Edit: se quiser solução em uma linha, faça isso:
AtualizacaoBANCO.setDate(INDEX, classe.getData() == null ? null : new java.sql.Date(classe.getData().getTimeInMillis()));
Abraços.
Nel
Realmente Nel, agora que vi que estava instanciando um Objeto pra retornar um Null.
INICIANTE ERROR DETECTED. :oops:
Obrigado
[quote=mateuscs]Nel
Realmente Nel, agora que vi que estava instanciando um Objeto pra retornar um Null.
INICIANTE ERROR DETECTED. :oops:
Obrigado [/quote]
O mais importante é aprender com os erros, porque é impossível alguém que nunca terra errado, só aqueles que nunca tentaram mesmo
E adicione como [Resolvido] ao lado do seu tópico. E o if que eu fiz em uma única linha, caso desconheça, chama-se “if ternario”, e gostos dele para situações como essa.
Abraços amigo.
Então, ainda estou evitando situações como vc postou, de if ternarios
para uma melhor didatica, por enquanto estou praticando os comuns.
Mais obrigado pela inteção, vou começar a estudar os ternarios ;D