Como criar uma string de consulta dinamicamente?

Ola amigos, preciso criar uma string de consulta de maneira dinamica. Ou seja, tenho um algumas checkboxes com os tipos de materiais. Assim :

<input type="checkbox" name="Material" value="Acrilico"> Acrilico <br/>
<input type="checkbox" name="Material" value="Cristal"> Cristal <br/>
<input type="checkbox" name="Material" value="Transistions">Transistions <br/>
<input type="checkbox" name="Material" value="High Lite"> High Lite <br/>
<input type="checkbox" name="Material" value="Trivex"> Trivex <br/>
<input type="checkbox" name="Material" value="Policarbonato">Policarbonato <br/>
<input type="checkbox" name="Material" value="Stylis"> Stylis<br/>

Eu preciso da criar uma select assim :

Select * from Lentes where material="Acrilico" OR material="Cristal" OR material="Transistions" OR material="High Lite" OR material="Trivex" OR material="Policarbonato" OR material="Stylis"

Mas eu nao sei como fazer isso sem saber quais as checkboxes serao marcadas.

Primeiro, use StringBuffer ou StringBuilder (o modo é o mesmo, só muda o nome).
Segundo, algumas coisas vc já tem padrão, certo?

StringBuffer query = new StringBuffer(); //ou StringBuilder query = new StringBuilder(); query.append("SELECT coluna1, coluna2, colunaN FROM lentes WHERE");
Depois, para cada checkbox, você cria um if, se ele estiver marcado, você acrescenta igualdade

if(request.getParameter("Acrilico") != null){
query.append(" material = Acrilico ");
}

E assim por diante

Onde vc está obtendo os valores do request? Em um servlet?
Se sim, seria algo assim:

String[] materiais = request.getParameterValues( "Material" ); for ( String material : materiais ) { // aqui, a variável material vai guardar o valor de todos os materiais selecionados }

[]'s

Obrigado pelas respostas.

David, sim, eh num servlet

Não é não. StringBuffer é sincronizado, enquanto o StringBuilder não é.
Prefira sempre StringBuilder, só use o StringBuffer se precisar de sincronização.

Os checkboxes dele tem o mesmo nome, por consequência os valores vem no mesmo parâmetro do request.
Sendo assim, é só usar o método getParameterValues do request.

[]'s

Pessoal, agradeco muito a ajuda de voces. Vou tentar seguir a sugestao de voces agora. Seu eu tiver problemas vou amolar voces mais um pouquinho.

David, eu preciso pegar o nome do parametro ( o NAME ) e o valor ( o VALUE ) pra poder montar o filtro:

Select * from lente where NAME=VALUE.

Tem alguma sugestao ?

Da forma como vc sugeriu eu nao consigo pegar o NAME da checkbox. Eu queria uma forma de nao precisar encher o codigo de IF.