Erro Simples no PreparedStatement

5 respostas
jmedeiros

Pessoal, estou com um problema simples mas que não estou enxergando o erro:

try {
            
            conexao.makeConexao();
            
            String sql = "SELECT nome, cod_diretoria FROM diretoria WHERE cod_diretoria = ?";
            
            
            ps = conexao.getConexao().prepareStatement(sql);
            
            ps.setInt(1,codigo);
            
            
            ResultSet rs = ps.executeQuery(sql);
            
            rs.next();
            
            Diretoria d = new Diretoria(rs.getString(1), rs.getInt(2));
            
            return d;
            
        }catch(SQLException error) {
            error.printStackTrace();
            return null;
        }

O PreparedStatement eu já tenho declarado no inicio da classe, o erro que esta acontecendo é que o setInt não esta setando o numero inteiro no lugar do ?, aparece uma mensagem de erro lançada pelo SqlException dizendo que a uma erro próximo ao '?'.

Alguem pode me ajudar

[b]

5 Respostas

Rafael_Steil

Qual banco vc esta usando?

Rafael

jmedeiros

O mysql, eu tenho outros metodos nessa mesma aplicação que funcionam corretamente!

E se eu trocar o preparedstatement por um statement a aplicação funciona normalmente!

Rafael_Steil

O erro esta aqui:

ResultSet rs = ps.executeQuery(sql);

voce nao pode passar o “sql” como argumento nesse caso :wink:

Rafael

cv1

E, desviando do assunto, mas nao menos importante, onde vc fecha o resultset/statement/conexao?

jmedeiros

Realmente eu estava esquecendo de fechar, valeu a dica cv!

valeu também pela ajuda rafael!

T+ galera!

Criado 18 de abril de 2005
Ultima resposta 18 de abr. de 2005
Respostas 5
Participantes 3