Repository: wwpedro/POOTrabalho Branch: main Commit: 1d36ebdf8353 Files: 27 Total size: 19.2 KB Directory structure: gitextract_n7wfx3qm/ ├── .classpath ├── .gitignore ├── .idea/ │ ├── .gitignore │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── libraries/ │ │ └── mysql_connector_j_8_0_33.xml │ ├── misc.xml │ └── modules.xml ├── .project ├── .settings/ │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.m2e.core.prefs ├── mysql-connector-j-8.0.33.jar ├── pom.xml ├── src/ │ ├── Controller/ │ │ ├── Estoque.java │ │ └── EstoqueInterface.java │ ├── DAO/ │ │ ├── ConexaoBanco.java │ │ ├── DadosConexao.java │ │ └── DadosConexaoAutenticacao.java │ ├── Model/ │ │ ├── Frios.java │ │ ├── NaoPereciveis.java │ │ └── Produto.java │ ├── View/ │ │ ├── AutenticacaoUsuario.java │ │ └── MenuEstoque.java │ └── test/ │ ├── FriosTest.java │ ├── NaoPereciveisTest.java │ └── TesteEstoque.java └── teste-main.iml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .classpath ================================================ ================================================ FILE: .gitignore ================================================ /target/ ================================================ FILE: .idea/.gitignore ================================================ # Default ignored files /shelf/ /workspace.xml ================================================ FILE: .idea/codeStyles/Project.xml ================================================ ================================================ FILE: .idea/codeStyles/codeStyleConfig.xml ================================================ ================================================ FILE: .idea/libraries/mysql_connector_j_8_0_33.xml ================================================ ================================================ FILE: .idea/misc.xml ================================================ ================================================ FILE: .idea/modules.xml ================================================ ================================================ FILE: .project ================================================ POOTrabalho org.eclipse.jdt.core.javabuilder org.eclipse.m2e.core.maven2Builder org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature ================================================ FILE: .settings/org.eclipse.jdt.core.prefs ================================================ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 org.eclipse.jdt.core.compiler.compliance=17 org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore org.eclipse.jdt.core.compiler.release=enabled org.eclipse.jdt.core.compiler.source=17 ================================================ FILE: .settings/org.eclipse.m2e.core.prefs ================================================ activeProfiles= eclipse.preferences.version=1 resolveWorkspaceProjects=true version=1 ================================================ FILE: pom.xml ================================================ 4.0.0 POOTrabalho POOTrabalho 0.0.1-SNAPSHOT src maven-compiler-plugin 3.8.1 17 ================================================ FILE: src/Controller/Estoque.java ================================================ package Controller; import java.util.Locale; import java.sql.SQLException; import java.util.Scanner; import DAO.ConexaoBanco; import Model.Frios; import Model.NaoPereciveis; import java.util.Locale; public class Estoque implements EstoqueInterface{ public void cadastrarProduto() throws SQLException { ConexaoBanco enviarDados = new ConexaoBanco(); Scanner entrada = new Scanner(System.in); System.out.println("**** CADASTRO DE PRODUTOS ****"); System.out.println("1- Digite o código do produto."); int id = entrada.nextInt(); entrada.nextLine(); System.out.println("2- Digite o nome do produto"); String nome = entrada.nextLine(); System.out.println("3- Digite o preço do produto."); entrada.useLocale(Locale.US); float preco = entrada.nextFloat(); entrada.nextLine(); System.out.println("O produto é do tipo:"); System.out.println("1- Frios"); System.out.println("2- Não perecível"); String escolhaProduto = entrada.nextLine().toLowerCase(); if (escolhaProduto.equals("1") || escolhaProduto.equals("frios")) { System.out.println("Qual a temperatura ideal do produto (em graus Celsius)?"); float temperaturaFrios = entrada.nextFloat(); entrada.nextLine(); Frios frios = new Frios(id, nome, preco); frios.setTipo("Frios"); frios.setTemperatura(temperaturaFrios); enviarDados.cadastrar_dados(frios); } else if (escolhaProduto.equals("2") || escolhaProduto.equals("não perecível")) { NaoPereciveis naoPereciveis = new NaoPereciveis(id, nome, preco); naoPereciveis.setTipo("Não Perecivel"); enviarDados.cadastrar_dados(naoPereciveis); } else { System.out.println("Produto inválido."); } } public void consultarEstoque() throws SQLException { ConexaoBanco consultardados = new ConexaoBanco(); consultardados.receber_dados(); } public void excluirProduto() throws SQLException { ConexaoBanco deletardados = new ConexaoBanco(); Scanner entrada = new Scanner(System.in); System.out.println("** Para deletar um produto e necessario fornecer o codigo de barras **\n" + "Qual o codigo de barras do produto?"); int codigo = entrada.nextInt(); deletardados.deletar_dados(codigo); } public void alterarProduto() throws SQLException { ConexaoBanco alterardados = new ConexaoBanco(); Scanner entrada = new Scanner(System.in); System.out.println("** MENU **"); System.out.println("1. Alterar Preço"); System.out.println("2. Alterar Nome"); int opcao = entrada.nextInt(); entrada.nextLine(); System.out.println("Digite o código de barras do produto."); int codigo = entrada.nextInt(); entrada.nextLine(); if (opcao == 1) { System.out.println("Digite o novo preço do produto."); entrada.useLocale(Locale.US); float preco = entrada.nextFloat(); alterardados.atualizarPreco(codigo, preco); } else if (opcao == 2) { System.out.println("Digite o novo nome do produto."); String nome = entrada.nextLine(); alterardados.atualizarNome(codigo, nome); } } } ================================================ FILE: src/Controller/EstoqueInterface.java ================================================ package Controller; import java.sql.SQLException; public interface EstoqueInterface { public void cadastrarProduto() throws SQLException; public void consultarEstoque() throws SQLException; public void excluirProduto() throws SQLException; } ================================================ FILE: src/DAO/ConexaoBanco.java ================================================ package DAO; import java.sql.PreparedStatement; import java.sql.SQLException; import Model.Produto; import java.sql.ResultSet; public class ConexaoBanco { DadosConexao dados = new DadosConexao(); DadosConexaoAutenticacao dadosautenticacao = new DadosConexaoAutenticacao(); public void cadastrar_dados(Produto Produtos) throws SQLException { dados.conectar(); String sql = "INSERT INTO produtos (id,nome, preco, tipo, temperatura) VALUES (?, ?, ?, ?, ?)"; PreparedStatement stmt = dados.conectar().prepareStatement(sql); stmt.setInt(1, Produtos.getID()); stmt.setString(2, Produtos.getNome()); stmt.setFloat(3, Produtos.getPreco()); stmt.setString(4, Produtos.getTipo()); stmt.setDouble(5, Produtos.getTemperatura()); stmt.execute(); System.out.println("Dados Cadastrados ao banco de dados."); } public void receber_dados() throws SQLException { dados.conectar(); String sql = "SELECT * FROM produtos"; PreparedStatement stmt = dados.conectar().prepareStatement(sql); ResultSet rs = stmt.executeQuery(); int qnt_produtos = 0; while (rs.next()) { qnt_produtos += 1; int id = rs.getInt("id"); String nome = rs.getString("nome"); double preco = rs.getDouble("preco"); String tipo = rs.getString("tipo"); double temperatura = rs.getDouble("temperatura"); System.out.println(qnt_produtos + "- Produto"); System.out.println("Dados Recebidos do banco de dados:"); System.out.println("Codigo de Barras: " + id); System.out.println("Nome: " + nome); System.out.println("Preco: " + preco); System.out.println("Tipo: " + tipo); System.out.println("Temperatura: " + temperatura); } } public void deletar_dados(int id) throws SQLException { dados.conectar(); String sql = "DELETE FROM produtos WHERE id = ?"; PreparedStatement stmt = dados.conectar().prepareStatement(sql); stmt.setInt(1, id); int rowsDeleted = stmt.executeUpdate(); if (rowsDeleted > 0) { System.out.println("Registro excluido da tabela."); } else { System.out.println("Nenhum registro encontrado na tabela com o codigo " + id + "."); } } public boolean consultarUsuario(String loginUsuario, String loginSenha) throws SQLException { dadosautenticacao.conectar(); String sql = "SELECT * FROM usuario"; PreparedStatement stmt = dadosautenticacao.conectar().prepareStatement(sql); ResultSet rs = stmt.executeQuery(); while (rs.next()) { String usuario = rs.getString("usuario"); String senha = rs.getString("senha"); if (loginUsuario.equals(usuario) && loginSenha.equals(senha)) { return true; } } return false; } public void atualizarPreco(int id, float novoPreco) throws SQLException { dados.conectar(); String sql = "UPDATE produtos SET preco = ? WHERE id = ?"; PreparedStatement stmt = dados.conectar().prepareStatement(sql); stmt.setFloat(1, novoPreco); stmt.setInt(2, id); int rowsUpdated = stmt.executeUpdate(); if (rowsUpdated > 0) { System.out.println("Preço do produto atualizado no banco de dados."); } else { System.out.println("Nenhum registro encontrado para atualização do preço."); } } public void atualizarNome(int id, String novoNome) throws SQLException { dados.conectar(); String sql = "UPDATE produtos SET nome = ? WHERE id = ?"; PreparedStatement stmt = dados.conectar().prepareStatement(sql); stmt.setString(1, novoNome); stmt.setInt(2, id); int rowsUpdated = stmt.executeUpdate(); if (rowsUpdated > 0) { System.out.println("Nome do produto atualizado no banco de dados."); } else { System.out.println("Nenhum registro encontrado para atualização do nome."); } } } ================================================ FILE: src/DAO/DadosConexao.java ================================================ package DAO; import java.sql.Connection; import java.sql.DriverManager; public class DadosConexao { private Connection con; private String driver = "com.mysql.cj.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/dados_produtos"; private String user = "root"; private String password = "senha"; public Connection conectar(){ try { Class.forName(driver); con = DriverManager.getConnection(url,user,password); return con; } catch (Exception e){ System.out.println(e); return null; } } } ================================================ FILE: src/DAO/DadosConexaoAutenticacao.java ================================================ package DAO; import java.sql.Connection; import java.sql.DriverManager; public class DadosConexaoAutenticacao { private Connection con; private String driver = "com.mysql.cj.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/autenticacao_usuarios"; private String user = "root"; private String password = "senha"; public Connection conectar(){ try { Class.forName(driver); con = DriverManager.getConnection(url,user,password); return con; } catch (Exception e){ System.out.println(e); return null; } } } ================================================ FILE: src/Model/Frios.java ================================================ package Model; public class Frios extends Produto { public Frios() { super(); // TODO Auto-generated constructor stub } public Frios(int ID, String nome, float preco) { super(ID, nome, preco); // TODO Auto-generated constructor stub } public void setTemperatura(float temperatura) { super.setTemperatura(temperatura); } public double getTemperatura() { return super.getTemperatura(); } } ================================================ FILE: src/Model/NaoPereciveis.java ================================================ package Model; public class NaoPereciveis extends Produto { public NaoPereciveis() { super(); // TODO Auto-generated constructor stub } public NaoPereciveis(int ID, String nome, float preco) { super(ID, nome, preco); // TODO Auto-generated constructor stub } } ================================================ FILE: src/Model/Produto.java ================================================ package Model; public class Produto { private int ID; private String nome; private float preco; private String tipo; protected float temperatura; public Produto() { super(); // TODO Auto-generated constructor stub } public Produto(int ID, String nome, float preco) { super(); this.ID = ID; this.nome = nome; this.preco = preco; } public int getID() { return ID; } public void setID(int iD) { ID = iD; } 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 String getTipo() { return tipo; } public void setTipo(String tipo) { this.tipo = tipo; } public double getTemperatura() { return temperatura; } public void setTemperatura(float temperatura) { this.temperatura = temperatura; } } ================================================ FILE: src/View/AutenticacaoUsuario.java ================================================ package View; import java.io.IOException; import java.sql.SQLException; import java.util.Scanner; import DAO.ConexaoBanco; public class AutenticacaoUsuario { public static void main(String[] args) throws SQLException, IOException { while(true) { Scanner entrada = new Scanner(System.in); System.out.println("** Bem vindo ao Workbench para fazer modificacões é necessário fazer login: **\n" + "Digite uma opcao:\n" + "1- Realizar login\n" + "2- Encerrar programa\n"); int opcao = entrada.nextInt(); if (opcao == 1) { Scanner entradalogin = new Scanner(System.in); System.out.println("Digite o login:"); String login = entradalogin.nextLine(); Scanner entradasenha = new Scanner(System.in); System.out.println("Digite a senha:"); String senha = entradasenha.nextLine(); ConexaoBanco autenticar = new ConexaoBanco(); if (autenticar.consultarUsuario(login,senha) == true){ System.out.println("Acesso Autorizado."); MenuEstoque menu = new MenuEstoque(); menu.estoque_menu(); break; } else{ System.out.println("Acesso negado, usuário ou senha incorreto."); } } else if (opcao == 2) { break; } else { System.out.println("Opcao invalida."); } } } } ================================================ FILE: src/View/MenuEstoque.java ================================================ package View; import java.sql.SQLException; import java.util.Scanner; import Controller.Estoque; public class MenuEstoque { public void estoque_menu() throws SQLException{ while(true) { Scanner entrada = new Scanner(System.in); System.out.println("** Estoque Workbenck **\n" + "Digite uma opcao:\n" + "1- Cadastrar produto\n" + "2- Consultar estoque\n" + "3- Excluir um produto\n" + "4- Alterar produto\n" + "5- Encerrar programa"); int opcao = entrada.nextInt(); Estoque estoque = new Estoque(); if (opcao == 1) { estoque.cadastrarProduto(); } else if (opcao == 2) { estoque.consultarEstoque(); } else if (opcao == 3) { estoque.excluirProduto(); } else if (opcao == 4) { estoque.alterarProduto(); } else if (opcao == 5){ break; } else { System.out.println("Opcao invalida."); } } } } ================================================ FILE: src/test/FriosTest.java ================================================ package test; import org.junit.Assert; import org.junit.Test; import Model.Frios; public class FriosTest { @Test public void testSetAndGetTemperatura() { Frios frios = new Frios(1, "Queijo", 10.99f); float temperatura = -5.0f; frios.setTemperatura(temperatura); double retrievedTemperatura = frios.getTemperatura(); Assert.assertEquals(temperatura, retrievedTemperatura, 0.001); } } ================================================ FILE: src/test/NaoPereciveisTest.java ================================================ package test; import org.junit.Assert; import org.junit.Test; import Model.NaoPereciveis; public class NaoPereciveisTest { @Test public void testNaoPereciveisConstructor() { int id = 1; String nome = "Arroz"; float preco = 5.99f; NaoPereciveis naoPereciveis = new NaoPereciveis(id, nome, preco); Assert.assertEquals(id, naoPereciveis.getID()); Assert.assertEquals(nome, naoPereciveis.getNome()); Assert.assertEquals(preco, naoPereciveis.getPreco(), 0.001); } } ================================================ FILE: src/test/TesteEstoque.java ================================================ package test; import java.sql.SQLException; import Controller.Estoque; public class TesteEstoque { public static void main(String[] args) { Estoque estoque = new Estoque(); try { estoque.cadastrarProduto(); } catch (SQLException e) { System.out.println("Erro ao cadastrar o produto: " + e.getMessage()); } } } ================================================ FILE: teste-main.iml ================================================