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)
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]
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;
}
}
Isso é um detalhe extremamente importante citado pelo Fexx, os importes das classes ‘Connection’, ‘PreparedStatement’ e ResultSet deve ser do pacote java.sql