Calendar = null [Resolvido]

13 respostas
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?

13 Respostas

robson_duarte1

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?

faz um if se o campo calendar for null ele manda null para
o seu calendar. espero que ajude,

mateuscs

Não é mandar Null para o Calendar
é para mandar Null para o tipo Date do Banco, usando Calendar.

wagnerfrancisco

Posta o trecho de código que vc tá usando que fica mais fácil te auxiliar.

Falou.

nel

mateuscs:
Não é mandar Null para o Calendar
é para mandar Null para o tipo Date do Banco, usando Calendar.

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.

mateuscs
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));
nel
mateuscs:
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));

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.

mateuscs

nel

Achei a solução

O problema estava em quando irei setar no Banco.

Resolvi da seguinte forma

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()));
mateuscs

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:

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()));
mateuscs

Qualquer dúvida pessoal, poste aqui, vamos tentar ser bem claros, para que todos possam acessar a solução.

nel

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.

mateuscs

Nel

Realmente Nel, agora que vi que estava instanciando um Objeto pra retornar um Null. :wink:

INICIANTE ERROR DETECTED. :oops:

Obrigado :smiley:

nel

mateuscs:
Nel

Realmente Nel, agora que vi que estava instanciando um Objeto pra retornar um Null. :wink:

INICIANTE ERROR DETECTED. :oops:

Obrigado :smiley:

O mais importante é aprender com os erros, porque é impossível alguém que nunca terra errado, só aqueles que nunca tentaram mesmo :slight_smile:
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.

mateuscs

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

Criado 14 de junho de 2011
Ultima resposta 14 de jun. de 2011
Respostas 13
Participantes 4