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
================================================