Problema de Comparação de objeto com valor em Branco  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
NOM
Thread.start()
[Avatar]

Membro desde: 09/08/2004 16:54:39
Mensagens: 41
Offline

Olá a todos, em uma classe DAO que criei, eu tenho dois metodos, um de inserir e outro de buscar, sendo que no metodo inserir eu faço uma busca do valor que esta sendo inserido para saber se ele já existe na base de dados, o problema é o seguinte: Eu não consigo comparar o objeto com o valor em branco, já coloquei equals e o == e nada.

Estou usando MVC, essa validação ficaria nessa classe mesma?

Qual é o problema do código de não estar comparando com valor em branco?
Segue a parte do codigo q esta com o problema:

This message was edited 1 time. Last update was at 09/07/2010 17:55:17


"A lâmpada do abajur não serve pra por aqui no pátio!"
"Porquê?!"
"É que a lâmpada do abajur se rosqueia pra baixo, e a daqui se rosqueia para cima!"
julianofischer
JavaGuru
[Avatar]

Membro desde: 05/12/2007 20:05:51
Mensagens: 209
Offline

Olá amigo,
observe que o seu método retorna um Vector vazio caso não exista resultado ou nulo caso dê erro na base.
Ou seja, para verificar se existe uma tupla na base de dados que atenda as especificações da sua consulta você deve fazer:



observe também que como o resultado pode ser nulo caso ocorra alguma exceção, procure verificar se o o objeto não é nulo antes de invocar a função size, evitando assim uma NullPointerException.
Espero ter ajudado.
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Antes de mais nadas, umas dicas:

Não use Vector, use ArrayList.
Não use Statement (nem concatene seus códigos SQL), use sempre PreparedStatement.
Sempre feche a conexão com finally (no método "insere" está OK, mas falta fazer o mesmo no método "busca").
Nunca retorne 'null' quando se espera uma lista de algo. Isso pode causar uma NullPointerException indesejada. Retorne uma lista vazia ou lance a exceção.

Agora, o seu problema. O erro está na comparação. O seu método "buscar" retorna um Vector<Ci> e você quer comparar isso com uma String. Impossível. O que você pode fazer é o que sugeriu o Juliano: verificar se a quantidade de registros retornados é ou não maior que zero.

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
santos.fernando
JavaEvangelist
[Avatar]

Membro desde: 28/02/2007 20:14:15
Mensagens: 479
Localização: Curitiba
Offline

Porque não deixa que o próprio banco faça essa verificação pra vc ?
Você não precisa ficar verificando a cada inserção.

Deus não escolhe os capacitados, mas capacita os escolhidos !
NOM
Thread.start()
[Avatar]

Membro desde: 09/08/2004 16:54:39
Mensagens: 41
Offline

Ola a Todos, obrigado pelas respostas, como em meu trabalho ninguem usa JAVA e não tenho pessoas proximas que programem, eu acabo cometendos esses erros! rsrsrs

Ao julianofischer :
Fiz o que vc falou e deu certo. Obrigado.

Ao marcobiscaro2112:
Fiz o dever de casa e busquei a diferença entre o Vector e o ArrayList, modifiquei o código, obrigado por isso.
Eu retorno null mas tambem invoco o metódo imprimirErro que trata isso, mas pergunto, poderia manter esse retorno null?.



Ao santos.fernando:
Poderi falar um pouco mais sobre isso, estou usando o mysql, só me dá uma ideia para eu começar.

Segue o código alterado:


This message was edited 2 times. Last update was at 12/07/2010 13:10:25


"A lâmpada do abajur não serve pra por aqui no pátio!"
"Porquê?!"
"É que a lâmpada do abajur se rosqueia pra baixo, e a daqui se rosqueia para cima!"
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team