[quote] StringBuffer sql = new StringBuffer();
sql.append(“select * from table where 1 = 1”);
if(dataFormPesq!=null){
sql.append(“and data_criacao >= param”);
}
if(!status.equals("")){
sql.append(“and status = param2”);
}
sql.toString();
}[/quote]
Onde tem param e param 2, você substituir pelo parâmetro que for necessário. Não é a melhor maneira, deixar os parâmetros “fixos” ali, mas eu acho mais simples assim do que no seu exemplo.
sql.append("select * from table where 1 = 1");
if(dataFormPesq!=null){
sql.append("and data_criacao >= param");
}
if(!status.equals("")){
sql.append("and status = param2");
}
sql.toString();
}[/code]
Onde tem param e param 2, você substituir pelo parâmetro que for necessário. Não é a melhor maneira, deixar os parâmetros “fixos” ali, mas eu acho mais simples assim do que no seu exemplo.
Post 14/08/2009 11:14:11 Assunto: Re:StringBuilder e List para montar clausula where do SQL
Ok Rubens, o que eu não entendi foi esta linha
view plaincopy to clipboardprint?
1. sql.append("select * from table where 1 = 1");
sql.append("select * from table where 1 = 1");
usa-se “where 1 = 1” para garantir que a query executará mesmo que os parâmetros não sejam setados.
para o caso de tentar setar um parâmetro e a condição de esse parâmetro estar nulo ou a asua condiçção não seja atendida… usando assim ele sempre executará…