Como usar a StringBuilder?

desculpa ae a amolacao… eh que eu to comecando…

Markao, olha soh o que eu achei aqui:

Sim isso é uma possibilidade…porem tem muitos condicionais nesse negocio ha de existir uma solução mais elegante e robusta :).

Aproveitando me responda o seguinte :

Uma lente possui mais de um material ?
Uma lente possui mais de um indice de refracao ?

Nao. Uma lente pode ter um unico Material. Um unico Indice de Refracao, enfim um unico valor para cada campo.

Eh que eu queria fazer uma consulta de precos. E essa consulta me retornaria os valores das lentes, por exemplo, Cristal e Acrilico.

Ok …porem primeiramente temos que organizar o seu banco de dados. Já que é de pouco valia uma consulta em uma base de dados incoerente.

[quote=douglasmorais]Nao. Uma lente pode ter um unico Material. Um unico Indice de Refracao, enfim um unico valor para cada campo.

Eh que eu queria fazer uma consulta de precos. E essa consulta me retornaria os valores das lentes, por exemplo, Cristal e Acrilico. [/quote]

Hum …bingo !!

seguinte voce tem que usar or no lugar de and ex :

SELECT * FROM lentes where (material='policarbonato' OR material='acrilico') 

Essa consulta vai retornar todas as lentes em que o campo material possua o valor ‘policarbonato’ ou ‘acrilico’.
concorda …? sem corda ? qual a diferença dos operadores ?

Nao entendo. pq que vc acha que ta incoerente ? Vc acha que eu deveria ter uma outras tabelas ( Material, Tratamento, IndiceRefracao ) e linkar todas com a tabela produto por uma foreign key ?

mas o OR nao vai limitar ? tipo, cristal ou acrilico e nao os dois… ?

erro

o OR da certo sim, acabei de testar no netbeans, naquela parte do banco de dados do netbeans

Opa desculpa …fail aqui no forum :slight_smile:

Quanto a incoerencia que eu me referia ficou fora do contexto. Esta tudo bem com sua base :slight_smile:


            <form  method="post" action="Servlet">
                <label>Esferico   :</label><input type="text" name="esferico" size="5"></input>
                <label>Cilindrico :</label><input type="text" name="cilindrico" size="5"></input><br></br>
                <label>Produto :</label> <br></br>
                <input type="text" name="produto" size="30" /><br></br>
                <label> Material</label><br></br>
                <input type="checkbox" name="material1" value="Acrilico"> Acrilico <br/>
                <input type="checkbox" name="material2" value="Cristal"> Cristal <br/>
                <input type="checkbox" name="material3" value="Transistions"> Transistions <br/>
                <input type="checkbox" name="material4" value="High Lite"> High Lite <br/>
                <input type="checkbox" name="material5" value="Trivex"> Trivex <br/>
                <input type="checkbox" name="material6" value="Policarbonato"> Policarbonato <br/>
                <input type="checkbox" name="material7" value="Stylis"> Stylis<br/>
                <br/>
                <br/>
                Tratamento<br/>
                <input type="checkbox" name="tratamento1" value="Anti-Reflexo"> Anti-Reflexo<br/>
                <input type="checkbox" name="tratamento2" value="Incolor"> Incolor<br/>
                <br/>
                <br/>
                Indice de Refracao<br/>

                <input type="checkbox" name="ir" value="1.49">1.49<br/>
                <input type="checkbox" name="ir" value="1.56">1.56<br/>
                <input type="checkbox" name="ir" value="1.61">1.61<br/>
                <input type="checkbox" name="ir" value="1.67">1.67<br/>
                <input type="checkbox" name="ir" value="1.80">1.80<br/>
                <input type="checkbox" name="ir" value="1.90">1.90<br/>
                <input type="submit" value="Gravar" />
            </form>
        </body>

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        StringBuilder sql = new StringBuilder("select * from lentes where ( ");
        Set<String> set = request.getParameterMap().keySet();
        for (String nameParameter : set) {
             if(nameParameter.startsWith("material")){
                 sql.append("material").append("=").append("'"+request.getParameter(nameParameter).concat("'").concat(" or  "));
             }
        }
        System.out.println(sql.toString().substring(0, (sql.toString().length()-5)).concat(" )"));
        
        processRequest(request, response);
    }

Saida:

select * from lentes where ( material='Acrilico' or  material='Cristal' or  material='Policarbonato' )

Isso resolve o problema quanto aos materias, agora só falta verificar e montar a consulta com os demais campos. Se baseia nisso e tenta fazer para os demais.

Muito Obrigado !