Pessoal, tudo bem??
Como em toda aplicação, eu tenho alguns campos que podem ter o valor nulo, porém o sistema “reclama” quando o campo é inteiro e eu não mando nenhum valor para a SQL.
Como vocês tratam esse caso?
Penso eu que criar uma Sql para cada caso ficará extremamente inviável.
Desde já , obrigado a todos!
Lavieri
Fevereiro 18, 2009, 10:34pm
#2
na hora de montar suas entidades… no lugar de usar [color=blue]int [/color] para os seus campos inteiros persistentes use Integer
Lembre-se que int é um Objeto primito portanto não pode ser nulo… porem Integer pode e representa a mesma coisa
Lavieri , mudei o tipo de int para Integer no meu construtor e mesmo assim acontece a mesma coisa!
[code]Veiculo veiculo = new Veiculo(idMontadora[comboMontadora.getSelectedIndex() -1],Integer.parseInt(textAno.getText()),textModeloCarro.getText(),textObservacoes.getText());
this.idVeiculo = veiculo.inclui();
[/code]
o problema ocorre quando eu nao digito nada nesse textAno e mando para
RodyBr
Fevereiro 19, 2009, 10:59am
#4
Vagner
Tentou verificar como estão as regras de validação de seu banco de dados?
Não tive problemas em nível de aplicação com a respeito disso, mas tive muitos problemas de que o campo na tabela era numérico, mas o dba esqueceu de me avisar que o campo era not null.
ok?
Rody, meu campo Ano está como padrão Nulo!
Não sei o que pode estar acontecendo!
Aí está minha classe de Aplicação!
Eu mudei esses campos int para Integer e mesmo assim não adiantou!
Aí eu voltei para int!
[code]package controleestoque;
import java.sql.ResultSet;
/**
*
@author VAGNER
*/
public class Veiculo {
private int idVeiculo,ano,idMontadora;
private String modelo;
private String observacoes;
public Veiculo(int idVeiculo,int idMontadora,int ano,String modelo,String observacoes) //construtor usado na alteração
{
this.idVeiculo = idVeiculo;
this.idMontadora = idMontadora;
this.ano = ano;
this.modelo = modelo;
this.observacoes = observacoes;
}
public Veiculo(int idMontadora,int ano,String modelo,String observacoes) //construtor usado na inserção
{
this.idMontadora = idMontadora;
this.ano = ano;
this.modelo = modelo;
this.observacoes = observacoes;
}
public Veiculo(int idVeiculo) //construtor usado na exclusão
{
this.idVeiculo = idVeiculo;
}
public int inclui()
{
return ConexaoMySQL.executaInsercao("Insert into veiculo (modelo,idMontadora,ano,observacoes) values('"+ this.modelo +"',"+this.idMontadora+","+this.ano+",'"+this.observacoes+"' );");
}
public static ResultSet pesquisa(String pesquisa, String campo)
{
ResultSet rs = null;
rs = ConexaoMySQL.executaConsulta(“Select * from (veiculo JOIN montadora on veiculo.idMontadora = montadora.idMontadora) where “+campo+” like '”+pesquisa+"’;");
return rs;
}
public void atualiza(){
ConexaoMySQL.executaAtualizacao("update veiculo set modelo='"+this.modelo+"', idMontadora= "+this.idMontadora+" , ano="+this.ano+", observacoes ='"+this.observacoes+"' where idVeiculo = "+this.idVeiculo);
}
public void exclui(){
ConexaoMySQL.executaAtualizacao("delete from veiculo where idVeiculo="+this.idVeiculo+";");
}
}
[/code]
Lavieri
Fevereiro 19, 2009, 12:03pm
#6
o erro esta aqui
Integer.parseInt(textAno.getText()),textModeloCarro.getText(),textObservacoes.getText())
vc não pode fazer…
Integer.parseInt(null)
portanto com o campo nulo, vc não pode fazer o parse
…
sempre bom mostrar o StackTrace quando vc tem erro ^^ … assim fica mais facil de ler o erro
…
Há… volte os campos que podem ser nulos para Integer… int não aceita null