Tenho que fazer um programa com tratamento de exceções

0 respostas
java
H

Estou tentando puxar os elementos de um arraylist de uma classe, para outra só para poder implementar no banco de dados.

MAIN

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collections;

public class Rec1tlp1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException {
        Lista_Produtos menu = new Lista_Produtos();
        String url = "jdbc:postgresql://localhost:5432/rec1tlp1?user=postgres&password=1234";

        java.util.Scanner leia = new java.util.Scanner(System.in);

        Connection conn = DriverManager.getConnection(url);
        Statement st = conn.createStatement();

        int opcao = 1;
        boolean continua = true;
        while (opcao != 0) {
            System.out.println("Menu");
            System.out.println("1 – Cadastrar um Produto no Banco de Dados");
            System.out.println("2 - Remover um Produto do Bando de Dados pelo ID");
            System.out.println("3 - Cadastrar um Produto na Lista de produtos não vendidos");
            System.out.println("4 - Remover um Produto da Lista de produtos não vendidos pelo nome");
            System.out.println("5 - Buscar Produtos por uma descrição no Banco de dados");
            System.out.println("6- Imprimir os Produtos cadastrados no Banco de dados ordenados pelo id");
            System.out.println("7- Imprimir a Lista de produtos não vendidos em ordem alfabética pelo nome dos produtos");
            System.out.println("8 – Cadastrar a venda de um produto no banco de dados a partir do ID, decrementando a");
            System.out.println("9- Cadastrar no Banco de Dados a Lista de produtos não vendidos");
            System.out.println("10 – Imprimir os 10 produtos vendidos mais baratos");
            System.out.println("0 – Sair");
            do {
                try {
                    System.out.println("Opção:");
                    opcao = Integer.parseInt(leia.nextLine());
                    continua = false;

                } catch (NumberFormatException e) {
                    System.out.println("Valor não numérico. Tente novamente!");
                }

            } while (continua);

            switch (opcao) {
                case 0: {
                    System.out.println("Encerrando o programa. Obrigada!");
                    break;
                }
                case 1: {

                    System.out.println("Digite o nome do produto:");
                    String nome = leia.nextLine();
                    System.out.println("Digite a descrição do produto:");
                    String descricao = leia.nextLine();
                    System.out.println("Digite o preço do produto:");
                    double preco = Double.parseDouble(leia.nextLine());
                    System.out.println("Dite a quantidade em estoque:");
                    int quantidade = Integer.parseInt(leia.nextLine());
                    continua = false;

                    String sql = "insert into produto (nome, descricao, preco, quantidade_estoque)"
                            + "values ('" + nome + "', '" + descricao + "', " + preco + ", " + quantidade + ");";

                    st.executeUpdate(sql);
                    System.out.println(sql);
                    break;
                }
                case 2: {
                    do {
                        try {
                            System.out.println("Digite o ID do produto para ser excluido do banco:");
                            int id = Integer.parseInt(leia.nextLine());
                            String sql = "delete from produto where id = " + id + ";";

                            st.executeUpdate(sql);
                            System.out.println(sql);

                            continua = false;
                        } catch (NumberFormatException e) {
                            System.out.println("Valor não numérico. Tente novamente!");
                        }

                    } while (continua);
                    break;
                }
                case 3: {
                    System.out.println("Cadastrando produto não vendido");
                    System.out.println("Digite o nome do produto:");
                    String nome = leia.nextLine();
                    System.out.println("Digite a descrição do produto:");
                    String descricao = leia.nextLine();
                    System.out.println("Digite o preço do produto:");
                    double preco = Double.parseDouble(leia.nextLine());
                    System.out.println("Dite a quantidade em estoque:");
                    int quantidade_estoque = Integer.parseInt(leia.nextLine());

                    Produto p = new Produto(0, nome, descricao, preco, quantidade_estoque);
                    menu.adicionar_produtos(p);
                    break;
                }
                case 4: {
                    menu.listar();
                    System.out.println("Digite o nome do produto para ser excluido:");
                    String nome = leia.nextLine();
                    menu.remover(nome);
                    menu.listar();
                    break;
                }
                case 5: {
                    System.out.println("Digite a descrição do produto:");
                    String descricao = leia.nextLine();
                    String sql = "Select nome, descricao from produto where descricao "
                            + "ilike '%" + descricao + "%' order by descricao;";
                    ResultSet res = st.executeQuery(sql);
                    while (res.next()) {
                        String nome = res.getString("nome");
                        descricao = res.getString("descricao");
                        System.out.println(" Produto: \n Nome: " + nome + ", Descrição: " + descricao + ";");

                    }
                    break;
                }
                case 6: {
                    String sql = "select*from produto order by id;";
                    ResultSet res = st.executeQuery(sql);

                    while (res.next()) {
                        int id = res.getInt("id");
                        String nome = res.getString("nome");
                        String descricao = res.getString("descricao");
                        double preco = res.getDouble("preco");
                        int quantidade_estoque = res.getInt("quantidade_estoque");

                        Produto produto = new Produto(id, nome, descricao, preco, quantidade_estoque);

                        System.out.println(produto);
                    }
                    break;
                }
                case 7: {
                    menu.listar_ordem();
                    
                    break;
                }
                case 8: {
                    do {
                        try {
                            System.out.println("Digite o id para cadastrar a venda:");
                            int id = Integer.parseInt(leia.nextLine());
                            String sql = "Update produto set quantidade_estoque = quantidade_estoque-1 where id=" + id + ";";
                            st.executeUpdate(sql);
                            continua = false;
                        } catch (NumberFormatException e) {
                            System.out.println("Valor não numérico. Tente novamente!");
                        }

                    } while (continua);
                    
                    break;
                }
                case 9: {
                for(int i=0; i<menu.lista.size(); i++){
                menu.lista.get(i);
                
//                    menu.lista.get(i);
//                    String sql = "Insert into produto (nome, descricao, preco,  quantidade_estoque)"
//                            + "values('"+menu.lista.getnome+"', '"+produto.getDescricao()+"', "
//                    +produto.getPreco()+","+produto.getQuantidade_estoque()+");";
//                System.out.println(sql);
                }
                    
                    
                }
            }
        }

    }

}

Produto

package rec1tlp1;

import java.util.Objects;

public class Produto implements Comparable<Produto> {

    private int id;
    private String nome;
    private String descricao;
    private double preco;
    private int quantidade_estoque;

    public Produto() {

    }

    public Produto(int id, String nome, String descricao, double preco, int quantidade_em_estoque) {
        this.id = id;
        this.nome = nome;
        this.descricao = descricao;
        this.preco = preco;
        this.quantidade_estoque = quantidade_em_estoque;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }

    public int getQuantidade_estoque() {
        return quantidade_estoque;
    }

    public void setQuantidade_estoque(int quantidade_estoque) {
        this.quantidade_estoque = quantidade_estoque;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 31 * hash + this.id;
        hash = 31 * hash + Objects.hashCode(this.nome);
        hash = 31 * hash + Objects.hashCode(this.descricao);
        hash = 31 * hash + (int) (Double.doubleToLongBits(this.preco) ^ (Double.doubleToLongBits(this.preco) >>> 32));
        hash = 31 * hash + this.quantidade_estoque;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Produto other = (Produto) obj;
        if (this.id != other.id) {
            return false;
        }
        if (Double.doubleToLongBits(this.preco) != Double.doubleToLongBits(other.preco)) {
            return false;
        }
        if (this.quantidade_estoque != other.quantidade_estoque) {
            return false;
        }
        if (!Objects.equals(this.nome, other.nome)) {
            return false;
        }
        if (!Objects.equals(this.descricao, other.descricao)) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Produto (" + id
                + "), Nome: " + nome
                + ", Descrição:" + descricao
                + ", Preço:" + preco
                + ", Quantidade_em_estoque:" + quantidade_estoque + ';';
    }

    @Override
    public int compareTo(Produto t) {
        return this.nome.compareTo(t.getNome());
    }
}

ARRAY

package rec1tlp1;

import java.util.ArrayList;
import java.util.Collections;

public class Lista_Produtos {

    ArrayList<Produto> lista = new ArrayList<Produto>();

    public Lista_Produtos() {

    }

    public void adicionar_produtos(Produto produto) {
        lista.add(produto);
    }

    public void listar() {
        String retorno = "";
        for (Produto produto : lista) {
            retorno += produto + "\n";
        }
        System.out.println(retorno);
    }

    public void listar_ordem() {
        Collections.sort(this.lista);
        String retorno = "";
        for (Produto produto : lista) {
            retorno += produto + "\n";
        }
        System.out.println(retorno);
    }

    public void limpar() {
        lista.clear();
    }

    public void remover(String nome) {
        for (int i = 0; i < lista.size(); i++) {
            Produto produto = lista.get(i);
            if (produto.getNome().equalsIgnoreCase(nome)) {
                lista.remove(produto);
                System.out.println("Produto Removido Com Sucesso");

            } else {
                System.out.println("Produto não encontrado");
            }
        }

    }
//    public void add_bd(){
//        String sql= "";
//            for(Produto produto: lista){
//            sql = "Insert into produto (nome, descricao, preco,  quantidade_estoque)"
//                                 + "values('"+produto.getNome()+"', '"+produto.getDescricao()+"', "
//                    +produto.getPreco()+","+produto.getQuantidade_estoque()+");";
//                System.out.println(sql);    
//        }
//    };
}
Criado 18 de outubro de 2021
Respostas 0
Participantes 1