From 6d35876a793a98188a4e600e996d8480540898ee Mon Sep 17 00:00:00 2001 From: GuilhermeWerner <26710260+GuilhermeWerner@users.noreply.github.com> Date: Sat, 18 Sep 2021 11:51:09 -0300 Subject: [PATCH] Fix date and datetime --- Database.sql | 4 +-- src/main/java/dao/ProdutoDAO.java | 7 ++-- src/main/java/model/Produto.java | 43 +++++++++-------------- src/main/java/service/ProdutoService.java | 10 +++--- 4 files changed, 28 insertions(+), 36 deletions(-) diff --git a/Database.sql b/Database.sql index db97fd0..a1b999f 100644 --- a/Database.sql +++ b/Database.sql @@ -3,7 +3,7 @@ CREATE TABLE public.produto ( descricao varchar NOT NULL, preco numeric NOT NULL, quantidade int4 NOT NULL, - datafabricacao date NULL, - datavalidade date NULL, + datafabricacao date NOT NULL, + datavalidade date NOT NULL, CONSTRAINT produto_pk PRIMARY KEY (id) ); diff --git a/src/main/java/dao/ProdutoDAO.java b/src/main/java/dao/ProdutoDAO.java index cc99821..6684519 100644 --- a/src/main/java/dao/ProdutoDAO.java +++ b/src/main/java/dao/ProdutoDAO.java @@ -99,13 +99,14 @@ public class ProdutoDAO { for (int i = 0; rs.next(); i++) { produtos[i] = new Produto(rs.getInt("id"), rs.getString("descricao"), rs.getFloat("preco"), - rs.getInt("quantidade")/* , rs.getDate("dataFabricacao"), rs.getDate("dataFabricacao") */); + rs.getInt("quantidade"), rs.getTimestamp("dataFabricacao"), rs.getDate("dataValidade")); } } st.close(); } catch (Exception e) { - System.err.println(e.getMessage()); + System.out.println(e.getMessage()); } + return produtos; } @@ -117,7 +118,7 @@ public class ProdutoDAO { ResultSet rs = st.executeQuery("SELECT * FROM produto WHERE produto.id = " + id); if (rs.first()) { produto = new Produto(rs.getInt("id"), rs.getString("descricao"), rs.getFloat("preco"), - rs.getInt("quantidade")/* , rs.getDate("dataFabricacao"), rs.getDate("dataFabricacao") */); + rs.getInt("quantidade"), rs.getTimestamp("dataFabricacao"), rs.getDate("dataValidade")); } st.close(); } catch (SQLException u) { diff --git a/src/main/java/model/Produto.java b/src/main/java/model/Produto.java index a8181fa..09d62e0 100644 --- a/src/main/java/model/Produto.java +++ b/src/main/java/model/Produto.java @@ -1,13 +1,14 @@ package model; import java.io.Serializable; -import java.time.LocalDate; -import java.time.LocalDateTime; +import java.time.*; +import java.sql.*; public class Produto implements Serializable { private static final long serialVersionUID = 1L; public static final String DESCRICAO_PADRAO = "Novo Produto"; public static final int MAX_ESTOQUE = 1000; + private int id; private String descricao; private float preco; @@ -15,31 +16,21 @@ public class Produto implements Serializable { private LocalDateTime dataFabricacao; private LocalDate dataValidade; - public Produto() { - id = -1; - descricao = DESCRICAO_PADRAO; - preco = 0.01F; - quantidade = 0; - dataFabricacao = LocalDateTime.now(); - dataValidade = LocalDate.now().plusMonths(6); // o default é uma validade de 6 meses. - } - - public Produto(int id, String descricao, float preco, int quantidade) { - setId(id); - setDescricao(descricao); - setPreco(preco); - setQuant(quantidade); - dataFabricacao = LocalDateTime.now(); - dataValidade = LocalDate.now().plusMonths(6); // o default é uma validade de 6 meses. - } - public Produto(int id, String descricao, float preco, int quantidade, LocalDateTime fabricacao, LocalDate v) { - setId(id); - setDescricao(descricao); - setPreco(preco); - setQuant(quantidade); - setDataFabricacao(fabricacao); - setDataValidade(v); + this.id = id; + this.descricao = descricao; + this.preco = preco; + this.quantidade = quantidade; + this.dataFabricacao = fabricacao; + this.dataValidade = v; + } + + public Produto() { + this(-1, DESCRICAO_PADRAO, 0.01F, 0, LocalDateTime.now(), LocalDate.now().plusMonths(6)); + } + + public Produto(int id, String descricao, float preco, int quantidade, Timestamp fabricacao, Date v) { + this(id, descricao, preco, quantidade, fabricacao.toLocalDateTime(), v.toLocalDate()); } public int getId() { diff --git a/src/main/java/service/ProdutoService.java b/src/main/java/service/ProdutoService.java index 223f084..e9d2351 100644 --- a/src/main/java/service/ProdutoService.java +++ b/src/main/java/service/ProdutoService.java @@ -22,14 +22,14 @@ public class ProdutoService { String descricao = request.queryParams("descricao"); float preco = Float.parseFloat(request.queryParams("preco")); int quantidade = Integer.parseInt(request.queryParams("quantidade")); - // LocalDateTime dataFabricacao = - // LocalDateTime.parse(request.queryParams("dataFabricacao")); - // LocalDate dataValidade = - // LocalDate.parse(request.queryParams("dataValidade")); + LocalDateTime dataFabricacao = + LocalDateTime.parse(request.queryParams("dataFabricacao")); + LocalDate dataValidade = + LocalDate.parse(request.queryParams("dataValidade")); int id = produtoDAO.getRandomId(); - Produto produto = new Produto(id, descricao, preco, quantidade/* , dataFabricacao, dataValidade */); + Produto produto = new Produto(id, descricao, preco, quantidade , dataFabricacao, dataValidade); produtoDAO.inserirProduto(produto);