Isso aqui não é do mesmo trecho de codigo que vc enviou, manda o correto então
Y
Ygor_Riam
pertece sim. segue ele abaixo novamente. acabei de rodar aki e deu o mesmo erro.
conn.conexao();
try {
conn.executaSQL("select * from fornecedores inner join bairro on fornecedores.id_bairro=bairro.id_bairro "+"inner join cidade on bairro.id_cidade = cidade.id_cidade"+"inner join estados on cidade.id_estado=estados.id_estado");conn.rs.first();mod.setId(conn.rs.getInt("id_fornecedor"));mod.setNome(conn.rs.getString("nome_fornecedor"));mod.setEndereco(conn.rs.getString("endereco"));mod.setBairro(conn.rs.getString("nome_bairro"));mod.setCNPJ(conn.rs.getString("cnpj_fornecedor"));mod.setNomeCidade(conn.rs.getString("nomes_cidades"));mod.setSigla_estado(conn.rs.getString("sigla_estado"));}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"Erroaobuscaroprimeiro!\nERRO:"+ex);}conn.desconecta();returnmod;}
R
rodriguesabner
é que no codigo q vc tinha enviado estava como conn.rs.last(); e no erro estava conn.rs.first();
Se no if(!conn.rs.first()){} retornou true, a indicação é que não há dados… Mesmo erro de nullPointer?
Y
Ygor_Riam
então e por que são dois botoes para setar o ultimo e o primeiro dado então são os mesmo códigos só muda o last e first mesmo.
sim mesmo erro do nullpointer
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at controle.ControleFornecedor.Primeiro(ControleFornecedor.java:83)
P
pmlm
O NullPointerException não tem nada a ver com o chamar do first ou o ter ou não ter dados na tabela.
Mostra a tua classe de Conexao (a da variavel conn). Aposto que conn.rs está a null
R
rodriguesabner
Não que nao tenha nada a ver, conn.rs estar null é uma possibilidade. Mas se ele não tivesse dados na tabela, retornaria o mesmo nullPointer do mesmo jeito
P
pmlm
Retornaria um outro erro mas não um NullPointerException. Provavelmente seria uma SQLException
R
rodriguesabner
Vixi, nem lembro o retorno, mas faz sentido, é mais logico retornar o sqlEx mesmo
Y
Ygor_Riam
Creio que não seja a classe de conexão com o banco, por que o outros formulários funciona normalmente so esse que esta com erro.
publicStatementstm;//responsável por preparar e realizar pesquisa no banco de dados//publicResultSetrs;//responsável por armazenar o resultado de uma pesquisa passada para o STM//privateStringdriver="org.postgresql.Driver";//responsável por indetificar o serviço do banco de dados//privateStringcaminho="jdbc:postgresql://localhost:5432/sistema";//responsável por setar o local do banco //privateStringusuario="postgres";privateStringsenha="10074546";publicConnectionconn;//responsável pela conexao com banco de dados//publicvoidconexao(){//metodo responsavel por realizar a conexao com o banco//System.setProperty("jdbc.Drivers",driver);try{conn=DriverManager.getConnection(caminho,usuario,senha);//JOptionPane.showMessageDialog(null,"conectado com sucesso!");//}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"erro de conexão!\n Erro:"+ex.getMessage());Logger.getLogger(ConectaBanco.class.getName()).log(Level.SEVERE,null,ex);}}try{stm=conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);rs=stm.executeQuery(sql);}catch(SQLExceptionex){// JOptionPane.showMessageDialog(null,"Erro ao excluir! \n Erro>"+ex.getMessage());}}publicvoiddesconecta(){//metodo para fechar a conexao com o banco de dados//try{conn.close();//JOptionPane.showMessageDialog(null,"desconetado com sucesso!");}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"erro ao fechar conexão!\n Erro:"+ex.getMessage());}}
}
Y
Ygor_Riam
e a primeira vez que estou estudando banco de dados aew estou bastante perdido.
P
pmlm
Estás a esconder o erro se algo correr mal a criar o ResultSet, ficando a null sem tu te aperceberes.
Ao ver isto percebi que a query deve estar errada e…
Falta ali um espaço. Está a ser interpretado como .id_cidadeinner
Nunca deixes catch com o corpo vazio. Estás a esconder erros.