Meu sistema me retorna erro porem gera a venda

Boa tarde

meu sistema ele gera a venda normal

mas ele mostra um erro, sera que devo ignorar como esta funcionando normal?

Eis a questao?

public void cadastrarItem_compra (Item_compra item_compra, int quantidadejt)
{
Connection conexao = ConnectionFactory.getConexao();
try{
boolean falta = false;
String pesquisaProduto = “select * from produto where id = ?”;
PreparedStatement pstmtP1 = conexao.prepareStatement(pesquisaProduto);
pstmtP1.setInt(1, item_compra.getId_produto());
ResultSet rsP = pstmtP1.executeQuery();
int qtdade_produto = 0;
while(rsP.next()){
qtdade_produto = rsP.getInt(“qtdade”);
qtdade_produto = qtdade_produto - quantidadejt;
if(qtdade_produto < 0){
JOptionPane.showMessageDialog(null, “Produto com estoque insuficiente!”);
falta = true;
}

        }
        if(!falta){
            String abateProduto = "update produto set qtdade = ? where id = ?";
            PreparedStatement pstmtP2 = conexao.prepareStatement(abateProduto);
            pstmtP2.setInt(1, qtdade_produto);
            pstmtP2.setInt(2, item_compra.getId_produto());
            int alteracoesP = pstmtP2.executeUpdate();
            int prox = 0;
            
            if(alteracoesP !=1){
                System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 " +alteracoesP);
            }else{
                System.out.println("Produto alterado com sucesso!");
                
                prox = 1;
            }
        
            if(prox == 1){

                String verificaItens = "select * from item_compra where id_produto = ? and id_venda = ?";
                PreparedStatement pstmt1 = conexao.prepareStatement(verificaItens);
                pstmt1.setInt(1, item_compra.getId_produto());
                pstmt1.setInt(2, item_compra.getId_venda());
                ResultSet rs = pstmt1.executeQuery();
                int cont = 0;
                int qtdade = 0;
                while(rs.next()){
                    cont++;
                    qtdade = rs.getInt("qtdade");
                }
                if(cont >= 1){
                    String updateItem = "update item_compra set qtdade = ? where id_produto = ? and id_venda = ?";
                    PreparedStatement pstmt2 = conexao.prepareStatement(updateItem);
                    qtdade = qtdade + item_compra.getQtdade();
                    pstmt2.setInt(1, qtdade);
                    pstmt2.setInt(2, item_compra.getId_produto());
                    pstmt2.setInt(3, item_compra.getId_venda());
                    int alteracoes = pstmt2.executeUpdate();

                    if(alteracoes!=1){
                        System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra2");
                    }else{
                        System.out.println("Produto alterado com sucesso!");
                    }
                    pstmt1.close();
                    pstmt2.close();
                }

                if(cont == 0){
                    String cadastroItens = "Insert into item_compra (id_venda, qtdade, id_produto) values (?,?,?)";
                    PreparedStatement pstmt3 = conexao.prepareStatement(cadastroItens);
                    pstmt3.setInt(1, item_compra.getId_venda());
                    pstmt3.setInt(2, item_compra.getQtdade());
                    pstmt3.setInt(3, item_compra.getId_produto());

                    int resultado = pstmt3.executeUpdate();

                    if(resultado!=1){
                        System.out.println("Houve um erro na inserção, tente novamente!");
                    }else{
                        System.out.println("Produto inserido com sucesso!");
                    }
                    pstmt3.close();
                }
            }  
            pstmtP1.close();
            pstmtP2.close();
        }
    }catch(SQLException e){
        System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
        while(e!=null){
            System.out.println("Sql state: "+e.getSQLState());
            System.out.println("Mensagem: "+e.getMessage());
            System.out.println("Error code: "+e.getErrorCode());
            e = e.getNextException();
        }
    }finally{
        System.out.println("Encerrando conexão");
        try{
            conexao.close();
            System.out.println("Conexão Terminada");
        }catch(SQLException ex){
            
        }
    }
}

public List<Item_compra> listarItem_compra(String id_venda){
    Connection conexao = ConnectionFactory.getConexao();
    List<Item_compra> itens_compra = new ArrayList();
    try{
        String consultaProduto = "Select * from item_compra where id_venda = ?";
        PreparedStatement pstmt = conexao.prepareStatement(consultaProduto);
        pstmt.setString(1, id_venda);
        ResultSet rs = pstmt.executeQuery();
        Item_compra item_compra;
        while(rs.next()){
            item_compra = new Item_compra();
            item_compra.setId(rs.getInt("id"));
            item_compra.setId_venda(rs.getInt("id_venda"));
            item_compra.setQtdade(rs.getInt("qtdade"));
            item_compra.setId_produto(rs.getInt("id_produto"));
            
            itens_compra.add(item_compra);
        }
        pstmt.close();
    }catch(SQLException e){
        System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
        while(e!=null){
            System.out.println("Sql state: "+e.getSQLState());
            System.out.println("Mensagem: "+e.getMessage());
            System.out.println("Error code: "+e.getErrorCode());
            e = e.getNextException();
        }
    }finally{
        System.out.println("Encerrando conexão");
        try{
            conexao.close();
            System.out.println("Conexão Terminada");
        }catch(SQLException ex){
            
        }
    }
    return itens_compra;   
}

ele retorna esse print de msg

Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 0

Verifique a saída desta parte do código…provavelmente você está fazendo a verificação do número errado.

{

    System.out.println(alteracoesP);

}

a saida é 0
zero

System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 " +alteracoesP);
Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 0

Se a saída é 0 a mensagem apresentada está correta segundo sua verificação…afinal 0 é diferente de 1…troca o valor na verificação e seja feliz.

O estranho é que passa os dois

        if(!falta){
            String abateProduto = "update produto set qtdade = ? where id = ?";
            PreparedStatement pstmtP2 = conexao.prepareStatement(abateProduto);
            pstmtP2.setInt(1, qtdade_produto);
            pstmtP2.setInt(2, item_compra.getId_produto());
            int alteracoesP = pstmtP2.executeUpdate();
            int prox = 0;
            if(alteracoesP!=1){
                System.out.println("Houve um erro na alteração, tente novamente! erro " + alteracoesP);
            }else{
                System.out.println("Produto alterado com sucesso!");
                prox = 1;
            }





            if(alteracoesP!=1){
                System.out.println("Houve um erro na alteração, tente novamente! erro " + alteracoesP);
            }else{
                System.out.println("Produto alterado com sucesso!");
                prox = 1;
            }

mas se eu mudar de 1 para 0 o sistema não funciona

Só esse pedaço de código não ajuda muito para saber o que realmente acontece…é necessário debugar a aplicação a partir do ponto onde o processo é iniciado, só assim você saberá realmente o que está acontecendo no seu código.

public void cadastrarItem_compra (Item_compra item_compra, int quantidadejt)
{
Connection conexao = ConnectionFactory.getConexao();
try{
boolean falta = false;
String pesquisaProduto = “select * from produto where id = ?”;
PreparedStatement pstmtP1 = conexao.prepareStatement(pesquisaProduto);
pstmtP1.setInt(1, item_compra.getId_produto());
ResultSet rsP = pstmtP1.executeQuery();
int qtdade_produto = 0;
while(rsP.next()){
qtdade_produto = rsP.getInt(“qtdade”);
qtdade_produto = qtdade_produto - quantidadejt;
if(qtdade_produto < 0){
JOptionPane.showMessageDialog(null, “Produto com estoque insuficiente!”);
falta = true;
}

    }
    if(!falta){
        String abateProduto = "update produto set qtdade = ? where id = ?";
        PreparedStatement pstmtP2 = conexao.prepareStatement(abateProduto);
        pstmtP2.setInt(1, qtdade_produto);
        pstmtP2.setInt(2, item_compra.getId_produto());
        int alteracoesP = pstmtP2.executeUpdate();
        int prox = 0;
        
        if(alteracoesP !=1){
            System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra1 " +alteracoesP);
        }else{
            System.out.println("Produto alterado com sucesso!");
            
            prox = 1;
        }
    
        if(prox == 1){

            String verificaItens = "select * from item_compra where id_produto = ? and id_venda = ?";
            PreparedStatement pstmt1 = conexao.prepareStatement(verificaItens);
            pstmt1.setInt(1, item_compra.getId_produto());
            pstmt1.setInt(2, item_compra.getId_venda());
            ResultSet rs = pstmt1.executeQuery();
            int cont = 0;
            int qtdade = 0;
            while(rs.next()){
                cont++;
                qtdade = rs.getInt("qtdade");
            }
            if(cont >= 1){
                String updateItem = "update item_compra set qtdade = ? where id_produto = ? and id_venda = ?";
                PreparedStatement pstmt2 = conexao.prepareStatement(updateItem);
                qtdade = qtdade + item_compra.getQtdade();
                pstmt2.setInt(1, qtdade);
                pstmt2.setInt(2, item_compra.getId_produto());
                pstmt2.setInt(3, item_compra.getId_venda());
                int alteracoes = pstmt2.executeUpdate();

                if(alteracoes!=1){
                    System.out.println("Houve um erro na alteração, tente novamente! Cadastrar itemcompra2");
                }else{
                    System.out.println("Produto alterado com sucesso!");
                }
                pstmt1.close();
                pstmt2.close();
            }

            if(cont == 0){
                String cadastroItens = "Insert into item_compra (id_venda, qtdade, id_produto) values (?,?,?)";
                PreparedStatement pstmt3 = conexao.prepareStatement(cadastroItens);
                pstmt3.setInt(1, item_compra.getId_venda());
                pstmt3.setInt(2, item_compra.getQtdade());
                pstmt3.setInt(3, item_compra.getId_produto());

                int resultado = pstmt3.executeUpdate();

                if(resultado!=1){
                    System.out.println("Houve um erro na inserção, tente novamente!");
                }else{
                    System.out.println("Produto inserido com sucesso!");
                }
                pstmt3.close();
            }
        }  
        pstmtP1.close();
        pstmtP2.close();
    }
}catch(SQLException e){
    System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
    while(e!=null){
        System.out.println("Sql state: "+e.getSQLState());
        System.out.println("Mensagem: "+e.getMessage());
        System.out.println("Error code: "+e.getErrorCode());
        e = e.getNextException();
    }
}finally{
    System.out.println("Encerrando conexão");
    try{
        conexao.close();
        System.out.println("Conexão Terminada");
    }catch(SQLException ex){
        
    }
}

}

public List<Item_compra> listarItem_compra(String id_venda){
Connection conexao = ConnectionFactory.getConexao();
List<Item_compra> itens_compra = new ArrayList();
try{
String consultaProduto = “Select * from item_compra where id_venda = ?”;
PreparedStatement pstmt = conexao.prepareStatement(consultaProduto);
pstmt.setString(1, id_venda);
ResultSet rs = pstmt.executeQuery();
Item_compra item_compra;
while(rs.next()){
item_compra = new Item_compra();
item_compra.setId(rs.getInt(“id”));
item_compra.setId_venda(rs.getInt(“id_venda”));
item_compra.setQtdade(rs.getInt(“qtdade”));
item_compra.setId_produto(rs.getInt(“id_produto”));

        itens_compra.add(item_compra);
    }
    pstmt.close();
}catch(SQLException e){
    System.out.println("Ocorreu algum erro no banco de dados, tente novamente!");
    while(e!=null){
        System.out.println("Sql state: "+e.getSQLState());
        System.out.println("Mensagem: "+e.getMessage());
        System.out.println("Error code: "+e.getErrorCode());
        e = e.getNextException();
    }
}finally{
    System.out.println("Encerrando conexão");
    try{
        conexao.close();
        System.out.println("Conexão Terminada");
    }catch(SQLException ex){
        
    }
}
return itens_compra;   

}