Erro com PreparedStatement

4 respostas
D

Por favor …gostaria de tirar uma dúvida…

estou mudando minha classe…para consulta no BD…(mysql)…de Statement para um PreparedStatement…e estou tendo uma dificuldade que ainda nao consegui encontrar o erro…(NullPointerException…o famoso…)

antes…estava assim…e funcioando OK…

String SQL_FindUser = "Select * from usuario where "+campopesq+" = '"+dadopesq+"';";
           java.sql.Statement st = con.createStatement();
           java.sql.ResultSet rs = st.executeQuery(SQL_FindUser);
           if(rs.next()){return(true);}else{return(false);}

Então comecei a fazer assim…:

String SQL_FindUser = "Select * from usuario where ? = ?";
            this.pst_Adduser=con.prepareStatement(SQL_FindUser);
            this.pst_Finduser.setString(1,campopesq.toString());
            this.pst_Finduser.setString(2,dadopesq.toString());
            java.sql.ResultSet rs = this.pst_Finduser.executeQuery();
            if(rs.next()){return(true);}else{return(false);}

Mas nao esta funcionando…esta dando NPE…alguem poderia me ajudar?

obrigado.

4 Respostas

TaQ

Pelo que eu to vendo ali você está criando um PrepareStatement chamado pst_Adduser mas está atribuindo as Strings em um outro chamado pst_Finduser, e chamando o pst_Finduser também ??? É pst_Adduser ou pst_Finduser ???

T

Os parametros em um prepared statement nao podem estar no lado antes do = , ouse seja, voce nao pode parametrizar nomes de campo em prepared statements, somente valores:

String SQL_FindUser = "Select * from usuario where "+campopesq.toString()+" = ?"; 
            this.pst_Adduser=con.prepareStatement(SQL_FindUser); 

            this.pst_Finduser.setString(1,dadopesq.toString()); 
            java.sql.ResultSet rs = this.pst_Finduser.executeQuery(); 
            if(rs.next()){return(true);}else{return(false);}
D

Quanto a escrita errada…eu tinha copiado errado na hora de postar aqui…desculpem…

mas o problema era realmente aquele…de não poder especificar um parametro antes do igual… ( ? = ?)

valeu. pessoal…obrigado! :lol:

TaQ

Eu acabei vendo um e não vi o outro ehehe :stuck_out_tongue:

Criado 23 de julho de 2003
Ultima resposta 23 de jul. de 2003
Respostas 4
Participantes 3