E tbm tenho uma classe de comandos no BD, odne faço o set na classe do ComboBox, porém quando chega no set, ele só é executaod uma vez, na segunda vez da eror e vai pro catch:
sem a mensagem de erro exata é difícil saber o problema. Mas, na documentação do Java diz que você pode ter problemas se adicionar objetos string duplicados.
Acontece, que o erro gerado no catch é simplesmente “NULL” nada mais
rafaelbortoletto
Creio que o problema possa ser que o Nome da peça está como NULL no banco de dados por isso, ele dá esse problema. Você pode tentar substituir por uma string vazia ou por um nome do tipo “vazio”.
Em todo o caso, tente substituir o getCause por getMessage dentro do seu bloco catch ou use o printStackTrace() para saber um detalhe melhorado dessa exceção.
será que não tem nada de errado com o tipo de retorno desse metodo?
porque se não for isso, entao nao sei, pq fiz o debug, e percebi que ele passa uma unica vez pelo setPeça, inclusive pega o nome d aprimeira peça no banco de dados e retorna porém na segunda vez nem passa pelo setter, vai direto pro catch…
e no meu BD n tem nenhum nome null
rafaelbortoletto
Então, tente executar o comando sql ( select nome from tabela ) no seu banco de dados e veja se algum nome está como NULL. Se estiver, você terá que alterar a coluna nome no banco de dados para not null e guardar um nome sempre que inserir um registro ou então, fazer a substituição usando o método replace da string substituindo o valor null por uma string vazia ou com o texto “vazio” por exemplo.
guilherme.dio
No printStackTrace, o primeiro item da lista é a classe auxiliar Peças, no método setPeça(String peça);
Pelas mensagens de erro o problema pode estar no fechamento de conexões que é fechado antes da hora.
Tente comentar o código abaixo e veja se funciona
consulta.close();retorno.close();
Além disso, coloque o código de fechamento dentro de um finally para que seja executado corretamente.
fica assim
try{// código}catch(Exceptione){// tratamento de exceção}finally{consulta.close();retorno.close();}
guilherme.dio
Já tentei comentar as 2 linhas de fechar o Statement e o ResultSet mas não deu certo, ja tentei o bloco finally tbm não deu, estou desanimado agora, muito ,mesmo
de uma olhada nesse método actionPerformed de um ComboBox onde eu pego o item selecionado e mando pra classe comandos onde esta o metodo de consultaPeça, que ao retornar vai para esse metodo que vou postar:
Se o erro não estiver ai, será que não é o tipo de retorno do consultaPeça()?
rafaelbortoletto
guilherme.dio:
Já tentei comentar as 2 linhas de fechar o Statement e o ResultSet mas não deu certo, ja tentei o bloco finally tbm não deu, estou desanimado agora, muito ,mesmo
de uma olhada nesse método actionPerformed de um ComboBox onde eu pego o item selecionado e mando pra classe comandos onde esta o metodo de consultaPeça, que ao retornar vai para esse metodo que vou postar:
Se o erro não estiver ai, será que não é o tipo de retorno do consultaPeça()?
Bom, se executa pelo menos uma vez o erro certamente não está no tipo de retorno porque se estivesse ele não executaria. Agora, depende do que você executa quando seleciona a tabela para procurar pelos nomes pela segunda vez. Pois, se forem tabelas diferentes pode ser que em outra tabela não existam itens cadastrados ou até mesmo itens nulos na coluna nome como falado antes.
guilherme.dio
Resolvi, eu fiz um ArrayList, e no retorno.next fui criando um novo objPeça, setei no atributo Peça o retorno.getString(“nome”); e adicionei o objPeça no arrayList
retornei o arrayList, e fiz uma logica pra adicionar no ComboBox.