DAdos nulos em banco

5 respostas
alexswb

Tenho uma metodo Insert em uma classe que é responsável por inserir dados em um BD do Derby.

Esse metodo recebe como parâmetro um objeto do tipo registro, que contém vários atributos. Só que não é sempre que estes atributos estão preenchidos. O código do metodo está abaixo:

public int insert(Registro reg) throws SQLException{
		
		ps = conn.prepareStatement(sqlIns);
		
		System.out.println(reg.getEntrada());
		
		ps.setDate(1, new Date(reg.getDataRegistro().getTime()));
		
		
		ps.setTime(2, reg.getEntrada().toTime());
		ps.setTime(3, reg.getSaidaAlmoco().toTime());
		ps.setTime(4, reg.getVoltaAlmoco().toTime());
		ps.setTime(5, reg.getSaidaAlmoco().toTime());
		
		ps.executeUpdate();
		
		return 1;
	}

Só que como os valores de ‘entrada’, ‘saidaalmoco’, etc, são nulos, tou recebendo uma NulllPointerException, nos ‘setTime’.

Como tratar isso?

5 Respostas

K

como vc está acontecendo uma exceção do tipo runtimeException, vc pode tratar dentro do proprio código utilizando o try/catch

[code]try{
// comandos que retornaram valores nulos
}
catch (Classe da Exceção objExceção)
{
//o que deve ser feito quando vier nulo
}

K

try{ // comandos que retornaram valores nulos } catch (Classe da Exceção objExceção) { //o que deve ser feito quando vier nulo }

LeoMarola

Bem, ou então você pode tratar seus campos individualmente e constatando o null, pode usar:

ps.setNull(pos,Types.NULL);

Isso se, esses campos puderem ser nulos.

:wink:

J

Se os campos da sua tabela aceitam null você pode fazer assim:

public int insert(Registro reg) throws SQLException{
 		
ps = conn.prepareStatement(sqlIns);

if (reg.getDataRegistro() == null) 
   ps.setNull(1,Types.DATE);
else
   ps.setDate(1, new Date(reg.getDataRegistro().getTime()));

if (reg.getEntrada() == null) 
   ps.setNull(2, Types.TIME);
else
   ps.setTime(2, reg.getEntrada().toTime());

// demais campos

ps.executeUpdate();

return 1;
}
alexswb

blz.
valeu!!!

Criado 29 de janeiro de 2007
Ultima resposta 29 de jan. de 2007
Respostas 5
Participantes 4