Classe consulta banco não estou conseguindo consultar linhas de uma tabela no banco [resolvido]

package DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import Conexao_banco.ConnectionFactory;

public class ConsultaClienteDAO {

	private Connection con;

	public void ConsultaCliente() {
		
		try {
			 
			con = ConnectionFactory.createConnection();    
				PreparedStatement ps = con.prepareStatement("select * from pessoa");    
				while (ps.executeQuery("select * from pessoa") != null) {
                    System.out.println(((ResultSet) ps).getInt(1));
            }			           			  
			       		          			                			            
			            ps.close();  
			            con.close();  
			            
		}			            
			            catch(Exception e) {  
			  		      System.out.println ("Não foi possivel conectar com o banco! - Erro Conexão ClienteDAO");
			  		      e.printStackTrace();
		}              
	}
}

Conexão realizada com sucesso.
Não foi possivel conectar com o banco! - Erro Conexão ClienteDAO
org.postgresql.util.PSQLException: Não pode utilizar métodos de consulta que pegam uma consulta de um comando preparado.
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:251)
at DAO.ConsultaClienteDAO.ConsultaCliente(ConsultaClienteDAO.java:20)
at Principal.Principal.main(Principal.java:43)

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.

Conexão realizada com sucesso.
Não foi possivel conectar com o banco! - Erro Conexão ClienteDAO
java.lang.ClassCastException: org.postgresql.jdbc4.Jdbc4PreparedStatement cannot be cast to java.sql.ResultSet
at DAO.ConsultaClienteDAO.ConsultaCliente(ConsultaClienteDAO.java:19)
at Principal.Principal.main(Principal.java:43)

se faz isso da erro na linha de baixo.

Cara faz tempo que não mexo com isso mais tente isso

[code]public void ConsultaCliente() {
try {

        con = null;      
        PreparedStatement ps = con.prepareStatement("select * from pessoa");
        ResultSet rs = 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(Exception e) {    
            System.out.println ("Não foi possivel conectar com o banco! - Erro Conexão ClienteDAO");  
            e.printStackTrace();  
    }                
}[/code]

flw!

desse jeito da o erro

java.lang.NullPointerException
at DAO.ConsultaClienteDAO.ConsultaCliente(ConsultaClienteDAO.java:23)
at Principal.Principal.main(Principal.java:43)
Não foi possivel conectar com o banco! - Erro Conexão ConsultaClienteDAO

mas acho que não vai dar ja que minha classe de conexão é

public class ConnectionFactory {

	private static Connection con;

	public static Connection createConnection() throws SQLException{
	 
    
        String driver = "org.postgresql.Driver";  
        String user   = "postgres";  
        String senha  = "postgres";  
        String url    = "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 (ClassNotFoundException ex)          {  
            System.err.print(ex.getMessage());  
        }
		
		return con;   
         
    }
}    

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; }

verifica os imports, e veja se vc está usando o correto e não o do driver de conexão.

Isso é um detalhe extremamente importante citado pelo Fexx, os importes das classes ‘Connection’, ‘PreparedStatement’ e ResultSet deve ser do pacote java.sql

Valeu Ivan Alves , deu certo, chegando em casa posto o código certinho e boto o tópico como resolvido.

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 .

Ahh, então tá tudo certo agora. :smiley:

public class ConsultaClienteDAO {

	private Connection con;

	public void ConsultaCliente() {
		
		try {
			   		          			                			            
			con = ConnectionFactory.createConnection();      
            PreparedStatement ps = con.prepareStatement("select * from pessoa");  
            ResultSet rs = ps.executeQuery();  
                while (rs.next()) {    
                    System.out.println(rs.getString("nome"));    
                }
			
			
			ps.close();  
			            con.close();  
			            
		}			            
			            catch(Exception e) {  
			  		      System.out.println ("Não foi possivel conectar com o banco! - Erro Conexão ConsultaClienteDAO");
			  		      e.printStackTrace();
		}              
	}
}

esse ai funcionou :smiley: