1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Pequena dúvida com banco Postgre em aplicação Java Web.

Galera tenho uma aplicação em java web que em que eu cadastro alguns valores e dou um insert num banco Postgre, tudo ocorre correto, mas algumas vezes ele não, insere, roda tudo bem mas quando vou ver no banco não inseriu. Aí notei que as vezes a servlet não recebe os parametros, mas não da erro nenhum, roda normal como se tivesse recebendo e inserindo. Alguém sabe porque isso acontece?

------Página-------

<table border="3" id="tabeladetalhamento">
                <thead>
                    <tr>
                        <th align="center" bgcolor="#CCCCCC" colspan="4">Cotação <%=request.getParameter("codigopedidoint")%></th>
                    </tr>
                </thead>

                <tr style="color: #29176C">
                    <td align="center"><b>Código Produto</b></td>
                    <td align="center"><b>Descrição</b></td>
                    <td align="center"><b>Quantidade</b></td>
                    <td align="center"><b>Oferta</b></td>
                </tr>
                <form action="cadastraroferta" onsubmit="return(validaoferta(this))" method="post">
                <%
                    for (PedidoComprar comprar : lista) {
                %>

                <tr>
                    <td align="center"><%=comprar.getCodProdutoInt()%><input type="hidden" name="codigoproduto" value="<%=comprar.getCodProdutoInt()%>"><input type="hidden" name="codigopedido" value="<%=request.getParameter("codigopedidoint")%>"></td>
                    <td align="center"><%=comprar.getDescricao()%></td>
                    <td align="center"><%=comprar.getQtdDesejada()%></td>
                    <td>Fazer Oferta : 
                    <input type="text" id="valormoeda" size="15" maxlength="15" name="preco">
                    <input type="hidden" name="codfornecedor" value="<%=codForn%>"></td>
                </tr>

                <%
                    }
                %>
                <tr>
                <td colspan="4" align="center"><input type="submit" value="Registrar"></td>
                </tr>
            </form>
            </table>

----Servlet-----

protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {

        String[] arrayCodPedidos = request.getParameterValues("codigopedido");
        String[] arrayCodProdutos = request.getParameterValues("codigoproduto");
        String[] arrayCodFornecedor = request.getParameterValues("codfornecedor");
        String[] arrayPreco = request.getParameterValues("preco");

        for(int i = 0; i<arrayCodPedidos.length;i++) {
            Cotacao cotacao = new Cotacao();
            System.out.println("Pedido " + arrayCodPedidos[i] + " - Produto " + arrayCodProdutos[i] + " - Fornecedor " + arrayCodFornecedor[i] + " - Preco " + arrayPreco[i]);

            double codpedido = Double.parseDouble(arrayCodPedidos[i]);
            cotacao.setCodPedido(codpedido);
            double codproduto = Double.parseDouble(arrayCodProdutos[i]);
            cotacao.setCodProduto(codproduto);
            cotacao.setPreco(arrayPreco[i]);
            double codfornec = Double.parseDouble(arrayCodFornecedor[i]);
            cotacao.setCod_fornecedor(codfornec);
            CotacaoDao dao = new CotacaoDao();
            dao.criarCotacao(cotacao);


        }

--------CotacaoDao----------

public void criarCotacao(Cotacao cotacao) throws SQLException {
        Connection conPostgre = new ConnectionFactory().getConnectionPostgree();
        String sql = "insert into cotacao (cod_pedido,cod_produto,preco,cod_fornecedor) values"
                + " (?,?,?,?);";
        PreparedStatement stmtPostgre = conPostgre.prepareStatement(sql);
        stmtPostgre.setInt(1, cotacao.getCodPedidoInt());
        stmtPostgre.setInt(2, cotacao.getCodProdutoInt());
        stmtPostgre.setString(3, cotacao.getPreco());
        stmtPostgre.setDouble(4, cotacao.getCod_fornecedorInt());
        stmtPostgre.execute();
        stmtPostgre.close();
        conPostgre.close();
        System.out.println("Fechando conexão com Postgre!");
    }
  • Coloca a classe CotacaoDAO na sua pergunta.

    lucastody   22 de out de 2014
  • Olha aí vou bota.

    Guilherme   22 de out de 2014
  • ele insere direitinho, mas algumas vezes, passa batido. De 10 tentativas, 2 ele não insere. E não achei padrão nenhum de valores que ele não insere, é aleatório, eu achei que era problema do banco, mas aí eu coloquei esse syso na servlet com os valores, e notei que ele meio que não roda a servlet. Mas também não da erro.

    Guilherme   22 de out de 2014
  • Às vezes o servlet roda, às vezes não?

    lucastody   22 de out de 2014
  • aham, Eu clico em registrar, as vezes roda, as vezes acho que roda mas ele não insere.Porque ele mostra o Abrindo conexão , e o Fechando conexão, mas o syso dos produtos não roda, nem o insert.

    Guilherme   22 de out de 2014
Mostrar todos os 7 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags banco-de-dados java-ee java post ou faça a sua própria pergunta.