From 64b11668b1a97cc2776643dcc60299caccf79e86 Mon Sep 17 00:00:00 2001 From: Roberta Sarah Date: Sun, 13 Jul 2025 14:05:27 -0300 Subject: [PATCH 1/2] (feat) - Prova restaurante --- avaliacoes/restaurante/Cliente.java | 15 ++++ "avaliacoes/restaurante/Endere\303\247o.java" | 52 ++++++++++++++ avaliacoes/restaurante/Funcionario.java | 25 +++++++ avaliacoes/restaurante/INFCGenerator.java | 9 +++ avaliacoes/restaurante/Item.java | 31 +++++++++ avaliacoes/restaurante/Menu.java | 20 ++++++ avaliacoes/restaurante/Mesa.java | 27 ++++++++ avaliacoes/restaurante/MyApp.java | 69 +++++++++++++++++++ avaliacoes/restaurante/NotaFiscal.java | 44 ++++++++++++ avaliacoes/restaurante/Pagamento.java | 10 +++ avaliacoes/restaurante/PagamentoCartao.java | 7 ++ avaliacoes/restaurante/PagamentoPix.java | 6 ++ avaliacoes/restaurante/PagamentosEspecie.java | 8 +++ avaliacoes/restaurante/Pedido.java | 43 ++++++++++++ avaliacoes/restaurante/Pessoa.java | 30 ++++++++ avaliacoes/restaurante/Produto.java | 24 +++++++ avaliacoes/restaurante/Restaurante.java | 41 +++++++++++ 17 files changed, 461 insertions(+) create mode 100644 avaliacoes/restaurante/Cliente.java create mode 100644 "avaliacoes/restaurante/Endere\303\247o.java" create mode 100644 avaliacoes/restaurante/Funcionario.java create mode 100644 avaliacoes/restaurante/INFCGenerator.java create mode 100644 avaliacoes/restaurante/Item.java create mode 100644 avaliacoes/restaurante/Menu.java create mode 100644 avaliacoes/restaurante/Mesa.java create mode 100644 avaliacoes/restaurante/MyApp.java create mode 100644 avaliacoes/restaurante/NotaFiscal.java create mode 100644 avaliacoes/restaurante/Pagamento.java create mode 100644 avaliacoes/restaurante/PagamentoCartao.java create mode 100644 avaliacoes/restaurante/PagamentoPix.java create mode 100644 avaliacoes/restaurante/PagamentosEspecie.java create mode 100644 avaliacoes/restaurante/Pedido.java create mode 100644 avaliacoes/restaurante/Pessoa.java create mode 100644 avaliacoes/restaurante/Produto.java create mode 100644 avaliacoes/restaurante/Restaurante.java diff --git a/avaliacoes/restaurante/Cliente.java b/avaliacoes/restaurante/Cliente.java new file mode 100644 index 0000000..3349065 --- /dev/null +++ b/avaliacoes/restaurante/Cliente.java @@ -0,0 +1,15 @@ +public class Cliente extends Pessoa { + private int numFid; + public Cliente(String nome, String cpf, Endereço endereco, int numFid) { + super(nome, cpf, endereco); + this.numFid = numFid; + } + + public int getNumFid() { + return numFid; + } + + public void setNumFid(int numFid) { + this.numFid = numFid; + } +} \ No newline at end of file diff --git "a/avaliacoes/restaurante/Endere\303\247o.java" "b/avaliacoes/restaurante/Endere\303\247o.java" new file mode 100644 index 0000000..a823d35 --- /dev/null +++ "b/avaliacoes/restaurante/Endere\303\247o.java" @@ -0,0 +1,52 @@ +public class Endereço { + + private String rua; + private String numero; + private String bairro; + private String cidade; + + public Endereço(String rua, String numero, String bairro, String cidade) { + this.rua = rua; + this.numero = numero; + this.bairro = bairro; + this.cidade = cidade; + } + + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public String getNumero() { + return numero; + } + + public void setNumero(String numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String toString() { + return rua + ", " + numero + ", " + bairro + ", " + cidade; + } + +} diff --git a/avaliacoes/restaurante/Funcionario.java b/avaliacoes/restaurante/Funcionario.java new file mode 100644 index 0000000..825138d --- /dev/null +++ b/avaliacoes/restaurante/Funcionario.java @@ -0,0 +1,25 @@ +public class Funcionario extends Pessoa { + private String cargo; + private String ctp; + + + public Funcionario(String nome, String cpf, String cargo, Endereço endereco, String ctp) { + super(nome, cpf, endereco); + this.cargo = cargo; + this.ctp = ctp; + } + + public String getCargo() { + return cargo; + } + public void setCargo(String cargo) { + this.cargo = cargo; + } + + public String getCtp() { + return ctp; + } + public void setCtp(String ctp) { + this.ctp = ctp; + } +} diff --git a/avaliacoes/restaurante/INFCGenerator.java b/avaliacoes/restaurante/INFCGenerator.java new file mode 100644 index 0000000..d889ea5 --- /dev/null +++ b/avaliacoes/restaurante/INFCGenerator.java @@ -0,0 +1,9 @@ +import java.util.ArrayList; +import java.util.UUID; + +public interface INFCGenerator { + void setIdentificacao(UUID id); + void setEmitente(String cnpj); + void addItens(ArrayList itens); + void setTotal(float total); +} diff --git a/avaliacoes/restaurante/Item.java b/avaliacoes/restaurante/Item.java new file mode 100644 index 0000000..4532033 --- /dev/null +++ b/avaliacoes/restaurante/Item.java @@ -0,0 +1,31 @@ +public class Item { + + private Produto produto; + private int quantidade; + private float valorVenda; + + public Item(Produto produto, int quantidade, float valorVenda) { + this.produto = produto; + this.quantidade = quantidade; + this.valorVenda = valorVenda; + } + + public Produto getProduto() { + return produto; + } + public void setProduto(Produto produto) { + this.produto = produto; + } + public int getQuantidade() { + return quantidade; + } + public void setQuantidade(int quantidade) { + this.quantidade = quantidade; + } + public float getValorVenda() { + return valorVenda; + } + public void setValorVenda(float valorVenda) { + this.valorVenda = valorVenda; + } +} diff --git a/avaliacoes/restaurante/Menu.java b/avaliacoes/restaurante/Menu.java new file mode 100644 index 0000000..ce25a91 --- /dev/null +++ b/avaliacoes/restaurante/Menu.java @@ -0,0 +1,20 @@ +import java.util.ArrayList; + +public class Menu { + private ArrayList produtos = new ArrayList<>(); + + public void adicionarProduto(Produto produto) { + produtos.add(produto); + } + + public void show() { + System.out.println("--- MENU ---"); + for (Produto p : produtos) { + System.out.printf("%s - R$ %.2f\n", p.getNome(), p.getPreco()); + } + } + + public ArrayList getProdutos() { + return produtos; + } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/Mesa.java b/avaliacoes/restaurante/Mesa.java new file mode 100644 index 0000000..a11e07a --- /dev/null +++ b/avaliacoes/restaurante/Mesa.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; + +public class Mesa { + private int numero; + private Funcionario garcom; + private ArrayList pedidos = new ArrayList<>(); + + + public Mesa(int numero) { + this.numero = numero; + } + + public void adicionarPedido(Pedido pedido) { + pedidos.add(pedido); + } + + public void setGarcom(Funcionario garcom){ + this.garcom = garcom; + } + + public int getNumero() { + return numero; + } + public ArrayList getPedidos() { + return pedidos; + } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/MyApp.java b/avaliacoes/restaurante/MyApp.java new file mode 100644 index 0000000..086ad68 --- /dev/null +++ b/avaliacoes/restaurante/MyApp.java @@ -0,0 +1,69 @@ +import java.util.ArrayList; + + +public class MyApp { + public static void main(String[] args) { + + Endereço enderecoRestaurante = new Endereço("Av. Central", "1000", "Centro", "Serra"); + Endereço enderecoCliente = new Endereço("Rua das Acácias", "45", "Jardim", "Serra"); + Endereço enderecoFuncionario = new Endereço("Rua das Palmeiras", "22", "Bela Vista", "Serra"); + + + Menu menuPrincipal = new Menu(); + Produto pizza = new Produto("Pizza Calabresa", 30.00f, 0.15f); + Produto suco = new Produto("Suco Natural", 10.00f, 0.08f); + Produto sobremesa = new Produto("Pudim", 12.00f, 0.10f); + menuPrincipal.adicionarProduto(pizza); + menuPrincipal.adicionarProduto(suco); + menuPrincipal.adicionarProduto(sobremesa); + + ArrayList menus = new ArrayList<>(); + menus.add(menuPrincipal); + + Mesa mesa1 = new Mesa(1); + ArrayList mesas = new ArrayList<>(); + mesas.add(mesa1); + + Restaurante restaurante = new Restaurante("Sabores da Serra", enderecoRestaurante, menus, mesas); + + + Funcionario garcom = new Funcionario("João", "123.456.789-00", "Garçom", enderecoFuncionario, "CTP12345"); + mesa1.setGarcom(garcom); + + Cliente cliente = new Cliente("Maria", "987.654.321-00", enderecoCliente, 5); + Pedido pedido = new Pedido(cliente); + + pedido.adicionarItem(new Item(pizza, 2, pizza.getPreco())); + pedido.adicionarItem(new Item(suco, 1, suco.getPreco())); + pedido.adicionarItem(new Item(sobremesa, 1, sobremesa.getPreco())); + + + mesa1.adicionarPedido(pedido); + + + Pagamento pagamento = new PagamentoPix(100.00f); + pedido.pagar(pagamento); + + System.out.println("\n====== STATUS FINAL ======"); + System.out.println("Restaurante: " + restaurante.getNome()); + System.out.println("Endereço: " + restaurante.getEndereco()); + + System.out.println("\n--- CARDÁPIO ---"); + for (Produto prod : menuPrincipal.getProdutos()) { + System.out.printf("%s - R$ %.2f\n", prod.getNome(), prod.getPreco()); + } + + System.out.println("\n--- MESAS ---"); + for (Mesa mesa : restaurante.getMesas()) { + System.out.println("Mesa " + mesa.getNumero()); + System.out.println("Garçom: " + mesa.getPedidos().get(0).getNotaFiscal() != null ? mesa1.getPedidos().get(0).getNotaFiscal().toString() : "Sem nota"); + for (Pedido p : mesa.getPedidos()) { + System.out.println("Pedido do cliente: " + p.getNotaFiscal() != null ? cliente.getNome() : "Sem nome"); + System.out.println("Itens:"); + for (Item item : p.getNotaFiscal() != null ? p.getNotaFiscal().getItens() : new ArrayList()) { + System.out.println("- " + item.getProduto().getNome()); + } + } + } + } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/NotaFiscal.java b/avaliacoes/restaurante/NotaFiscal.java new file mode 100644 index 0000000..ce868ee --- /dev/null +++ b/avaliacoes/restaurante/NotaFiscal.java @@ -0,0 +1,44 @@ +import java.util.ArrayList; +import java.util.UUID; + +public class NotaFiscal implements INFCGenerator { + private UUID id; + private String cnpj; + private ArrayList itens; + private float total; + + public NotaFiscal() { + itens = new ArrayList<>(); + } + + public ArrayList getItens() { + return itens; + } + + public void setIdentificacao(UUID id) { + this.id = id; + } + + public void setEmitente(String cnpj) { + this.cnpj = cnpj; + } + + public void setTotal(float total) { + this.total = total; + } + + public void exibirNota() { + System.out.println("--- NOTA FISCAL ---"); + System.out.println("ID: " + id); + System.out.println("Emitente: " + cnpj); + for (Item p : itens) { + System.out.println(p.getProduto().getNome() + " - R$ " + p.getProduto().getPreco()); + } + System.out.printf("Total (c/ IVA): R$ %.2f\n", total); + } + + @Override + public void addItens(ArrayList itens) { + this.itens.addAll(itens); + } +} diff --git a/avaliacoes/restaurante/Pagamento.java b/avaliacoes/restaurante/Pagamento.java new file mode 100644 index 0000000..298cdb9 --- /dev/null +++ b/avaliacoes/restaurante/Pagamento.java @@ -0,0 +1,10 @@ +public abstract class Pagamento { + protected float valor; + + public Pagamento(float valor) { + this.valor = valor; + } + + public float getValor() { return valor; } +} + diff --git a/avaliacoes/restaurante/PagamentoCartao.java b/avaliacoes/restaurante/PagamentoCartao.java new file mode 100644 index 0000000..55e08fd --- /dev/null +++ b/avaliacoes/restaurante/PagamentoCartao.java @@ -0,0 +1,7 @@ +public class PagamentoCartao extends Pagamento { + + public PagamentoCartao(float valor) { + super(valor); + } + +} diff --git a/avaliacoes/restaurante/PagamentoPix.java b/avaliacoes/restaurante/PagamentoPix.java new file mode 100644 index 0000000..722bb89 --- /dev/null +++ b/avaliacoes/restaurante/PagamentoPix.java @@ -0,0 +1,6 @@ +public class PagamentoPix extends Pagamento { + + public PagamentoPix(float valor) { + super(valor); + } +} diff --git a/avaliacoes/restaurante/PagamentosEspecie.java b/avaliacoes/restaurante/PagamentosEspecie.java new file mode 100644 index 0000000..2d3fa4c --- /dev/null +++ b/avaliacoes/restaurante/PagamentosEspecie.java @@ -0,0 +1,8 @@ +public class PagamentosEspecie extends Pagamento { + + public PagamentosEspecie(float valor) { + super(valor); + } + + +} diff --git a/avaliacoes/restaurante/Pedido.java b/avaliacoes/restaurante/Pedido.java new file mode 100644 index 0000000..7c31f5d --- /dev/null +++ b/avaliacoes/restaurante/Pedido.java @@ -0,0 +1,43 @@ +import java.util.ArrayList; +import java.util.UUID; + +public class Pedido { + private Cliente cliente; + private ArrayList itens; + private Pagamento pagamento; + private NotaFiscal notaFiscal; + + public Pedido(Cliente cliente) { + this.cliente = cliente; + this.itens = new ArrayList<>(); + } + + public void adicionarItem(Item item) { + itens.add(item); + } + + public void pagar(Pagamento pagamento) { + this.pagamento = pagamento; + gerarNotaFiscal(); + } + + + + private void gerarNotaFiscal() { + notaFiscal = new NotaFiscal(); + notaFiscal.setIdentificacao(UUID.randomUUID()); + notaFiscal.setEmitente("99.999.999/0001-00"); + notaFiscal.addItens(itens); + float total = 0; + for (Item item: itens) { + total += item.getQuantidade() * item.getProduto().getPreco() * 1.23f; + } + + notaFiscal.setTotal(total); + notaFiscal.exibirNota(); + } + + public NotaFiscal getNotaFiscal() { + return notaFiscal; + } +} diff --git a/avaliacoes/restaurante/Pessoa.java b/avaliacoes/restaurante/Pessoa.java new file mode 100644 index 0000000..ff1b24e --- /dev/null +++ b/avaliacoes/restaurante/Pessoa.java @@ -0,0 +1,30 @@ +public class Pessoa { + private String nome; + private String cpf; + private Endereço endereco; + + public Pessoa(String nome, String cpf, Endereço endereco) { + this.nome = nome; + this.cpf = cpf; + this.endereco = endereco; + } + + public String getNome() { + return nome; } + public String getCpf() { + return cpf; } + public Endereço getEndereco() { + return endereco; + } + public void setEndereco(Endereço endereco) { + this.endereco = endereco; + } + public void setNome(String nome) { + this.nome = nome; + } + public void setCpf(String cpf) { + this.cpf = cpf; + } + +} + diff --git a/avaliacoes/restaurante/Produto.java b/avaliacoes/restaurante/Produto.java new file mode 100644 index 0000000..bde3625 --- /dev/null +++ b/avaliacoes/restaurante/Produto.java @@ -0,0 +1,24 @@ +public class Produto { + private String nome; + private float preco; + private float iva; + + public Produto(String nome, float preco, float iva) { + this.nome = nome; + this.preco = preco; + this.iva = iva; + } + + public String getNome() { + return nome; } + public void setNome(String nome) { + this.nome = nome; } + public float getPreco() { + return preco; } + public void setPreco(float preco) { + this.preco = preco; } + public float getIva() { + return iva; } + public void setIva(float iva) { + this.iva = iva; } +} \ No newline at end of file diff --git a/avaliacoes/restaurante/Restaurante.java b/avaliacoes/restaurante/Restaurante.java new file mode 100644 index 0000000..3adafbf --- /dev/null +++ b/avaliacoes/restaurante/Restaurante.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; + +public class Restaurante { + private String nome; + private ArrayList menus; + private Endereço endereco; + private ArrayList mesas; + + + + public Restaurante(String nome, Endereço endereco, ArrayList menus, ArrayList mesas) { + this.nome = nome; + this.endereco = endereco; + this.menus = menus; + this.mesas = mesas; + } + + + public String getNome() { + return nome; + } + public void setNome(String nome) { + this.nome = nome; + } + public Endereço getEndereco() { + return endereco; + } + public void setEndereco(Endereço endereco) { + this.endereco = endereco; + } + public ArrayList getMenu() { + return menus; + } + + public void setMenu(ArrayList menus) { + this.menus = menus; + } + public ArrayList getMesas() { + return mesas; + } +} From 6618b0ac30044e1e706657abd1f3818c43f41f61 Mon Sep 17 00:00:00 2001 From: Roberta Sarah Date: Tue, 15 Jul 2025 19:13:50 -0300 Subject: [PATCH 2/2] mvc da prova restaurante --- .../java/controller/ClienteController.java" | 27 +++++++++ .../java/controller/EnderecoController.java" | 28 +++++++++ .../src/main/java/dao/ClienteDAO.java" | 28 +++++++++ .../src/main/java/dao/EnderecoDAO.java" | 29 +++++++++ .../src/main/java/db/DbFile.java" | 38 ++++++++++++ .../src/main/java/model/Cliente.java" | 21 +++++++ .../src/main/java/model/Endereco.java" | 60 +++++++++++++++++++ .../src/main/java/model/Pessoa.java" | 40 +++++++++++++ .../src/main/java/view/ClienteScan.java" | 30 ++++++++++ .../src/main/java/view/EnderecoScan.java" | 34 +++++++++++ 10 files changed, 335 insertions(+) create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/controller/ClienteController.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/controller/EnderecoController.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/dao/ClienteDAO.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/dao/EnderecoDAO.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/db/DbFile.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/model/Cliente.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/model/Endereco.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/model/Pessoa.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/view/ClienteScan.java" create mode 100644 "exercises/mvc-cliente-endere\303\247o/src/main/java/view/EnderecoScan.java" diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/controller/ClienteController.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/controller/ClienteController.java" new file mode 100644 index 0000000..6dbf2f6 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/controller/ClienteController.java" @@ -0,0 +1,27 @@ +package controller; + +import dao.ClienteDAO; +import model.Cliente; + +public class ClienteController { + + private final ClienteDAO clienteDAO; + + public ClienteController() { + this.clienteDAO = new ClienteDAO(); + } + + public void cadastrarCliente(String nome, String cpf, String telefone) { + Cliente cliente = new Cliente(); + cliente.setNome(nome); + cliente.setCpf(cpf); + cliente.setTelefone(telefone); + + clienteDAO.salvar(cliente); + } + + public void listarClientes() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'listarClientes'"); + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/controller/EnderecoController.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/controller/EnderecoController.java" new file mode 100644 index 0000000..d9b35d8 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/controller/EnderecoController.java" @@ -0,0 +1,28 @@ +package controller; + +import dao.EnderecoDAO; +import model.Endereco; + +public class EnderecoController { + + private final EnderecoDAO enderecoDAO; + + public EnderecoController() { + this.enderecoDAO = new EnderecoDAO(); + } + + public void cadastrarEndereco(String rua, int numero, String bairro, int idCliente) { + Endereco endereco = new Endereco(); + endereco.setRua(rua); + endereco.setNumero(numero); + endereco.setBairro(bairro); + endereco.setIdCliente(idCliente); + + enderecoDAO.salvar(endereco); + } + + public void listarEnderecos() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'listarEnderecos'"); + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/dao/ClienteDAO.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/dao/ClienteDAO.java" new file mode 100644 index 0000000..6076be5 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/dao/ClienteDAO.java" @@ -0,0 +1,28 @@ +package dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import db.DbFile; +import model.Cliente; + +public class ClienteDAO { + + public void salvar(Cliente cliente) { + String sql = "INSERT INTO cliente (nome, cpf, telefone) VALUES (?, ?, ?)"; + + try (Connection conn = DbFile.getConnection(); + PreparedStatement stmt = conn.prepareStatement(sql)) { + + stmt.setString(1, cliente.getNome()); + stmt.setString(2, cliente.getCpf()); + stmt.setString(3, cliente.getTelefone()); + + stmt.executeUpdate(); + System.out.println("✅ Cliente salvo com sucesso!"); + + } catch (SQLException e) { + System.err.println("❌ Erro ao salvar cliente: " + e.getMessage()); + } + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/dao/EnderecoDAO.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/dao/EnderecoDAO.java" new file mode 100644 index 0000000..edc9bc6 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/dao/EnderecoDAO.java" @@ -0,0 +1,29 @@ +package dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import db.DbFile; +import model.Endereco; + +public class EnderecoDAO { + + public void salvar(Endereco endereco) { + String sql = "INSERT INTO endereco (rua, numero, bairro, id_cliente) VALUES (?, ?, ?, ?)"; + + try (Connection conn = DbFile.getConnection(); + PreparedStatement stmt = conn.prepareStatement(sql)) { + + stmt.setString(1, endereco.getRua()); + stmt.setInt(2, endereco.getNumero()); + stmt.setString(3, endereco.getBairro()); + stmt.setInt(4, endereco.getIdCliente()); + + stmt.executeUpdate(); + System.out.println("✅ Endereço salvo com sucesso!"); + + } catch (SQLException e) { + System.err.println("❌ Erro ao salvar endereço: " + e.getMessage()); + } + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/db/DbFile.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/db/DbFile.java" new file mode 100644 index 0000000..fb579bc --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/db/DbFile.java" @@ -0,0 +1,38 @@ +package db; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DbFile { + + private static final String URL = "jdbc:mysql://localhost:3306/seu_banco"; + private static final String USER = "seu_usuario"; + private static final String PASSWORD = "sua_senha"; + + + private static Connection connection = null; + + public static Connection getConnection() { + if (connection == null) { + try { + connection = DriverManager.getConnection(URL, USER, PASSWORD); + System.out.println("✅ Conexão com o banco estabelecida com sucesso!"); + } catch (SQLException e) { + System.err.println("❌ Erro ao conectar ao banco de dados: " + e.getMessage()); + } + } + return connection; + } + + public static void closeConnection() { + try { + if (connection != null && !connection.isClosed()) { + connection.close(); + System.out.println("🔒 Conexão com o banco encerrada."); + } + } catch (SQLException e) { + System.err.println("❌ Erro ao fechar a conexão: " + e.getMessage()); + } + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Cliente.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Cliente.java" new file mode 100644 index 0000000..8b95940 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Cliente.java" @@ -0,0 +1,21 @@ +package model; + +public class Cliente extends Pessoa { + private String telefone; + + public Cliente() {} + + public Cliente(int id, String nome, String cpf, String telefone) { + super(id, nome, cpf); + this.telefone = telefone; + } + + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Endereco.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Endereco.java" new file mode 100644 index 0000000..c39c414 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Endereco.java" @@ -0,0 +1,60 @@ +package model; + +public class Endereco { + private int id; + private String rua; + private int numero; + private String bairro; + private int idCliente; + + public Endereco() {} + + public Endereco(int id, String rua, int numero, String bairro, int idCliente) { + this.id = id; + this.rua = rua; + this.numero = numero; + this.bairro = bairro; + this.idCliente = idCliente; + } + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public int getNumero() { + return numero; + } + + public void setNumero(int numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public int getIdCliente() { + return idCliente; + } + + public void setIdCliente(int idCliente) { + this.idCliente = idCliente; + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Pessoa.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Pessoa.java" new file mode 100644 index 0000000..de5a252 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/model/Pessoa.java" @@ -0,0 +1,40 @@ +package model; + +public class Pessoa { + private int id; + private String nome; + private String cpf; + + public Pessoa() {} + + public Pessoa(int id, String nome, String cpf) { + this.id = id; + this.nome = nome; + this.cpf = cpf; + } + + + 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 getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/view/ClienteScan.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/view/ClienteScan.java" new file mode 100644 index 0000000..3db92c6 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/view/ClienteScan.java" @@ -0,0 +1,30 @@ +package view; + +import java.util.Scanner; +import controller.ClienteController; + +public class ClienteScan { + + public void executarCadastro() { + Scanner scanner = new Scanner(System.in); + ClienteController controller = new ClienteController(); + + System.out.println("=== Cadastro de Cliente ==="); + + System.out.print("Nome: "); + String nome = scanner.nextLine(); + + System.out.print("CPF: "); + String cpf = scanner.nextLine(); + + System.out.print("Telefone: "); + String telefone = scanner.nextLine(); + + controller.cadastrarCliente(nome, cpf, telefone); + System.out.println("✔ Cliente cadastrado com sucesso!\n"); + } + + public static void main(String[] args) { + new ClienteScan().executarCadastro(); + } +} diff --git "a/exercises/mvc-cliente-endere\303\247o/src/main/java/view/EnderecoScan.java" "b/exercises/mvc-cliente-endere\303\247o/src/main/java/view/EnderecoScan.java" new file mode 100644 index 0000000..c421f21 --- /dev/null +++ "b/exercises/mvc-cliente-endere\303\247o/src/main/java/view/EnderecoScan.java" @@ -0,0 +1,34 @@ +package view; + +import java.util.Scanner; +import controller.EnderecoController; + +public class EnderecoScan { + + public void executarCadastro() { + Scanner scanner = new Scanner(System.in); + EnderecoController controller = new EnderecoController(); + + System.out.println("=== Cadastro de Endereço ==="); + + System.out.print("Rua: "); + String rua = scanner.nextLine(); + + System.out.print("Número: "); + int numero = scanner.nextInt(); + scanner.nextLine(); + + System.out.print("Bairro: "); + String bairro = scanner.nextLine(); + + System.out.print("ID do Cliente: "); + int idCliente = scanner.nextInt(); + + controller.cadastrarEndereco(rua, numero, bairro, idCliente); + System.out.println("✔ Endereço cadastrado com sucesso!\n"); + } + + public static void main(String[] args) { + new EnderecoScan().executarCadastro(); + } +}