Pessoal à um tempo atrás estava escrevendo um código em java que necessitaria uma pesquisa com “like ‘algum texto’%”
O sendo que o prepared statement utiliza “?” para encontrar os campos a serem setados, tentei fazer algo assim:
"select ... like ?%;"
porém isso não funcionou, fiz uma gambis, concatenando a variavel que era passada por parâmetro à “%”, funcionou, mas isso da brecha para SQL injection.
Como eu faço uma consulta com “%” sem esse problema?
public ResultSet getResultSet(String nome) throws SQLException {
String sql = "select * from empresa where nome like '%" + nome
+ "%'order by prioridade";
PreparedStatement stmt = this.connection.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
return rs;
}
parece que você está iniciando, talvez possa se inteirar mais de algum framework, quem sabe seja uma boa idéia, se quiser fazer, por exemplo em hibernate com auxílio de Criteria, pode ficar assim:
e você nem precisa se preocupar em tratar PreparedStatement.
[code] @SuppressWarnings(“unchecked”)
public List<Empresa> buscarPorNome(String nome) {