Select like %nome% (Mysql/Java)

MySQL

Java

19/10/2016

no Mysql, quando quero dar um select em um ou vários usuários utilizando termos parciais, usamos o seguinte comando:
select * from usuario where nome like '%Souza%'; 

até aqui tudo certo, agora no java eu tenho uma função que conecta ao banco e faz o select
try {               
             String sql = "SELECT * FROM usuario where nome like ?";
   			PreparedStatement ps = con.prepareStatement(sql);
   			ps.setString(1, nome);

onde a ? equivale a String nome, aqui também esta tudo certo, entretanto eu preciso digitar o nome completo para dar certo.
agora como eu faria se quisesse misturar os 2 conceitos, fazendo com que o java também utiliza-se termos parciais, tentei a seguinte forma e NÃO deu certo
try {               
             String sql = "SELECT * FROM usuario where nome like %?%";
   			PreparedStatement ps = con.prepareStatement(sql);
   			ps.setString(1, nome);

acredito que o erro ocorra por que a ? não é mais reconhecida como a string nome, alguem sabe me dizer a maneira correta de fazer isso?
Michael Batista

Michael Batista

Curtidas 0

Melhor post

Jones Granatyr

Jones Granatyr

19/10/2016

Olá, você tentou fazer da seguinte forma?

ps.setString(1, "%" + nome + "%");
GOSTEI 3

Mais Respostas

Michael Batista

Michael Batista

19/10/2016

um ótima ideia, não tinha pensado nisso. vlw mesmo cara, deu certo
GOSTEI 1
POSTAR