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);