diff --git a/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..2961374b67394c2b623dca87ca13d6a116fb4c1c
--- /dev/null
+++ b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java
@@ -0,0 +1,111 @@
+package fr.ulille.iut.pizzaland.beans;
+
+import java.util.List;
+
+import fr.ulille.iut.pizzaland.dto.IngredientCreateDto;
+import fr.ulille.iut.pizzaland.dto.IngredientDto;
+import fr.ulille.iut.pizzaland.dto.PizzaCreateDto;
+import fr.ulille.iut.pizzaland.dto.PizzaDto;
+
+public class Pizza {
+	private long id;
+	private String name;
+	private List<Ingredient> ingredient;
+
+	public Pizza() {
+	}
+
+	public Pizza(long id, String name, List<Ingredient> ingredient) {
+		this.id = id;
+		this.name = name;
+		this.ingredient = ingredient;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public long getId() {
+		return id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public void setIngredient(List<Ingredient> ingredient) {
+		this.ingredient = ingredient;
+	}
+
+	public List<Ingredient> getIngredients() {
+		return ingredient;
+	}
+
+	public static PizzaDto toDto(Pizza p) {
+		PizzaDto dto = new PizzaDto();
+		dto.setId(p.getId());
+		dto.setName(p.getName());
+		dto.setIngredients(p.getIngredients());
+
+		return dto;
+	}
+
+	public static Pizza fromDto(PizzaDto dto) {
+		Pizza pizza = new Pizza();
+		pizza.setId(dto.getId());
+		pizza.setName(dto.getName());
+		pizza.setIngredient(dto.getIngredients());
+
+		return pizza;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		Pizza other = (Pizza) obj;
+		if (id != other.id)
+			return false;
+		if (name == null) {
+			if (other.name != null)
+				return false;
+		} else if (!name.equals(other.name))
+			return false;
+		return true;
+	}
+
+	@Override
+	public String toString() {
+		String retour = "Pizza [id=" + id + ", name=" + name;
+		for (Ingredient unIngredient : ingredient) {
+			retour += ", ingredient=" + unIngredient;
+		}
+		retour += "]";
+		return retour;
+	}
+
+	public static PizzaCreateDto toCreateDto(Pizza pizza) {
+		PizzaCreateDto dto = new PizzaCreateDto();
+		dto.setName(pizza.getName());
+		dto.setIngredients(pizza.getIngredients());
+		
+		return dto;
+	}
+	
+	public static Pizza fromPizzaCreateDto(PizzaCreateDto dto) {
+		Pizza pizza = new Pizza();
+		pizza.setName(dto.getName());
+		pizza.setIngredient(dto.getIngredient());
+		
+		return pizza;
+	}
+
+}
diff --git a/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..626ba350df63893adc31034d49c9a2eb8597777e
--- /dev/null
+++ b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java
@@ -0,0 +1,20 @@
+package fr.ulille.iut.pizzaland.dao;
+
+import org.jdbi.v3.sqlobject.statement.SqlUpdate;
+import org.jdbi.v3.sqlobject.transaction.Transaction;
+
+public interface PizzaDao {
+
+	@SqlUpdate("CREATE TABLE IF NOT EXISTS Pizzas ....")
+	void createPizzaTable();
+
+	@SqlUpdate("CREATE TABLE IF NOT EXISTS PizzaIngredientsAssociation .....")
+	void createAssociationTable();
+
+	@Transaction
+	default void createTableAndIngredientAssociation() {
+		createAssociationTable();
+		createPizzaTable();
+
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaCreateDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaCreateDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..1306ddd8ddcb445ec54e2d447e60269c25182236
--- /dev/null
+++ b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaCreateDto.java
@@ -0,0 +1,29 @@
+package fr.ulille.iut.pizzaland.dto;
+
+import java.util.List;
+
+import fr.ulille.iut.pizzaland.beans.Ingredient;
+
+public class PizzaCreateDto {
+	private String name;
+	private List<Ingredient> ingredient;
+	
+	public PizzaCreateDto() {}
+	
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	
+	public void setIngredients(List<Ingredient> ingredient) {
+		this.ingredient = ingredient;
+	}
+	
+	public List<Ingredient> getIngredient() {
+		return ingredient;
+	}
+	
+}
diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b87f7ccc819d075430d8548cd3550a12fee9d69
--- /dev/null
+++ b/src/main/java/fr/ulille/iut/pizzaland/dto/PizzaDto.java
@@ -0,0 +1,40 @@
+package fr.ulille.iut.pizzaland.dto;
+
+import java.util.List;
+
+import fr.ulille.iut.pizzaland.beans.Ingredient;
+import fr.ulille.iut.pizzaland.beans.Pizza;
+
+public class PizzaDto {
+	
+	private long id;
+	private String nom;
+	private List<Ingredient> ingredient;
+	
+	public PizzaDto() {};
+	
+	public long getId() {
+		return id;
+	}
+	
+	public void setId(long id) {
+		this.id = id;
+	}
+	
+	public String getName() {
+		return nom;
+	}
+	
+	public void setName(String nom) {
+		this.nom = nom;
+	}
+	
+	public List<Ingredient> getIngredients() {
+		return ingredient;
+	}
+	
+	public void setIngredients(List<Ingredient> ingredient) {
+		this.ingredient = ingredient;
+	}
+	
+}