Eu realizei testes aqui, e o que o sandro fez pode até ter resolvido o problema de deleção dele, entretanto olhe o exemplo abaixo:
public class Ola {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Conexao con = new Conexao();
con.conectarODBCPersonalizado("TC");
String busca = "LAY";
PreparedStatement pst = con.getCon().prepareStatement("select * from OPERADORES where nome like ?");
pst.setString(1, "%"+busca+"%");
ResultSet rs = pst.executeQuery();
while(rs.next()){
System.out.println(rs.getString("nome"));
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Existe um registro de nome CLAYTON no banco, entretanto embora não seja gerado nenhum erro, o registro não é retornado, já desta outra forma sim:
public class Ola {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Conexao con = new Conexao();
con.conectarODBCPersonalizado("TC");
String busca = "LAY";
PreparedStatement pst = con.getCon().prepareStatement("select * from OPERADORES where nome like '%"+busca+"%'");
ResultSet rs = pst.executeQuery();
while(rs.next()){
System.out.println(rs.getString("nome"));
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Estou utilizando SQL Server como fonte de dados, e misteriosamente o método que o Sandro utilizou não retorna nenhum resultado, enquanto a concatenação da String Query resolve o problema. Mas como eu disse anteriormente o uso de concatenação de Strings faz com que o PreparedStatement deixe de oferecer a segurança que ele normalmente oferece compilando a String, ou seja, é uma maneira inadequada de resolver o problema.
Continuo aguardando uma maneira de efetuar buscas com like utilizando preparedStatement.
[]'s Paulo