Preparedstatement com like

3 respostas
jonasjgs2

porque o primeiro select nao me traz os registros com o like
e o seguinte me traz
o que eu estou fazendo de errado?

public ResultSet ListaRs(String UsuNome) throws SQLException {

        String sql = "select * from usuario where usunome like ? order by usunome";                                //primeiro select
//        String sql = "select * from usuario where usunome like '%JONAS%' order by usunome";             //segundo select
        PreparedStatement smtm = this.con.prepareStatement(sql);
        String s = "'%" + UsuNome.trim() + "%'";
        System.out.println(s);

        smtm.setString(1, s);
        
        ResultSet rset =  smtm.executeQuery();
      
        this.con.commit();

        return rset;

    }

3 Respostas

Marlon_Meneses

nesta linha

String s = "'%" + UsuNome.trim() + "%'";

retira as aspas simples

drsmachado

Ambos geram a mesma query.
Só não entendi por que commit após a consulta…

Gustavo_Marques

O preparedStatement automaticamente insere as aspas simples quando se trata de string.

Tente assim

String sql = "select * from usuario where usunome like ? order by usunome";
String s = "%" + UsuNome.trim() + "%";  //tire as aspas simples
System.out.println(s);    
smtm.setString(1, s);

Acho que assim vai funcionar,

Att

Criado 30 de outubro de 2012
Ultima resposta 30 de out. de 2012
Respostas 3
Participantes 4