Classe consulta banco não estou conseguindo consultar linhas de uma tabela no banco [resolvido]
11 respostas
Q
queroaprender
packageDAO;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importConexao_banco.ConnectionFactory;publicclassConsultaClienteDAO{privateConnectioncon;publicvoidConsultaCliente(){try{con=ConnectionFactory.createConnection();PreparedStatementps=con.prepareStatement("select * from pessoa");while(ps.executeQuery("select * from pessoa")!=null){System.out.println(((ResultSet)ps).getInt(1));}ps.close();con.close();}catch(Exceptione){System.out.println("Não foi possivel conectar com o banco! - Erro Conexão ClienteDAO");e.printStackTrace();}}}
Tu deu dois selects para um mesmo comando, no caso, para um mesmo PrepareadStatement.
Depois de ter pego, simplesmente pega e da um “ps.executeQuery()”, pois tu já informou qual a sua query quando criou o objeto.
Cara faz tempo que não mexo com isso mais tente isso
publicvoidConsultaCliente(){try{con=null;PreparedStatementps=con.prepareStatement("select * from pessoa");ResultSetrs=ps.executeQuery();while(rs.next()){System.out.println(rs.getString("nomeDoCampoTipoString"));//altere aqui para o seu campo da tabela que retorne o tipo String}ps.close();con.close();}catch(Exceptione){System.out.println("Não foi possivel conectar com o banco! - Erro Conexão ClienteDAO");e.printStackTrace();}}
mas acho que não vai dar ja que minha classe de conexão é
publicclassConnectionFactory{privatestaticConnectioncon;publicstaticConnectioncreateConnection()throwsSQLException{Stringdriver="org.postgresql.Driver";Stringuser="postgres";Stringsenha="postgres";Stringurl="jdbc:postgresql://localhost:5432/teste_dao";try{Class.forName(driver);con=DriverManager.getConnection(url,user,senha);System.out.println("Conexão realizada com sucesso.");}catch(ClassNotFoundExceptionex){System.err.print(ex.getMessage());}returncon;}}
Ivan_Alves
Ops esse na linha 04 é assim altera aí:
con=ConnectionFactory.createConnection();
É mesmo jeito que antes é porque estava fazendo os testes e tirei, senão o NullPointException é inevitavel já que a conexão é nula
também seria bom se você colocasse logo abaixo desse código ao obter a conexão o seguinte
if(con == null){
System.out.println("Não foi possível conectar com o banco de dados, tente mais tarde!");
return;
}
Fexx
verifica os imports, e veja se vc está usando o correto e não o do driver de conexão.
Ivan_Alves
Isso é um detalhe extremamente importante citado pelo Fexx, os importes das classes ‘Connection’, ‘PreparedStatement’ e ResultSet deve ser do pacote java.sql
Q
queroaprender
Valeu Ivan Alves , deu certo, chegando em casa posto o código certinho e boto o tópico como resolvido.
Fexx
Acredito tbm que deve ser isso, já que o erro é gerando ao tentar fazer um cast de um pacote do postgresql para o do sql do java .
Fexx
Ahh, então tá tudo certo agora.
Q
queroaprender
publicclassConsultaClienteDAO{privateConnectioncon;publicvoidConsultaCliente(){try{con=ConnectionFactory.createConnection();PreparedStatementps=con.prepareStatement("select * from pessoa");ResultSetrs=ps.executeQuery();while(rs.next()){System.out.println(rs.getString("nome"));}ps.close();con.close();}catch(Exceptione){System.out.println("Não foi possivel conectar com o banco! - Erro Conexão ConsultaClienteDAO");e.printStackTrace();}}}