Não pode utilizar métodos de consulta que pegam uma consulta de um comando preparado

6 respostas
JuniorMcz

Bom dia,
Estou querendo resgatar um coluna de tabela mas aparece esse erro :

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:249)

Segue o método :

public  List<Cliente> listarNome(boolean b) throws Exception {

            
        BancoDeDados bd = new BancoDeDados();

        bd.conectar();

        String sql = "select * from cadcliente";
               
        PreparedStatement p = bd.getPreparedStatement(sql);
                     
        ResultSet res = p.executeQuery(sql);
                
        List<Cliente> lista = new ArrayList<Cliente>();

        while (res.next()) {

            Cliente c = new Cliente();

            c.setNOME(res.getString("nome"));           

            lista.add(c);
        }

        bd.desconectar();
        
        return  lista;
    }

Alguém sabe o que é ??

6 Respostas

drsmachado

Como é este método getPreparedStatement?

JuniorMcz

public PreparedStatement getPreparedStatement(String sql) throws Exception { return conexao.prepareStatement(sql); }

A

Acho que o problema é você passar a variável sql no método executeQuery.

Quando cria o preparedStatement, você já informa qual a query.

JuniorMcz

Exato, já informo…

Como seria da outra forma ?

raphael.ricci

http://www.guj.com.br/java/49922-erro-ao-acessar-o-banco

A

JuniorMcz:
Exato, já informo…

Como seria da outra forma ?

A outra forma seria você não passar a variável sql no método:

ResultSet res = p.executeQuery();
Criado 11 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 6
Participantes 4