From faf685214739e68a933754bf81ec049138389306 Mon Sep 17 00:00:00 2001 From: Hugo BLANQUART <hugo.blanquart.etu@univ-lille.fr> Date: Fri, 6 Mar 2020 11:51:08 +0100 Subject: [PATCH] json --- src/main/java/fr/ulille/iut/pizzaland/ApiV1.java | 16 ++++++++++++++++ .../fr/ulille/iut/pizzaland/beans/Pizza.java | 2 +- .../fr/ulille/iut/pizzaland/dao/PizzaDao.java | 8 ++++++-- .../iut/pizzaland/resources/PizzaResource.java | 2 +- src/main/resources/pizzas.json | 6 ++++++ 5 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/pizzas.json diff --git a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java index 2fd7689..c44a1f9 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java +++ b/src/main/java/fr/ulille/iut/pizzaland/ApiV1.java @@ -6,6 +6,7 @@ import java.util.logging.Logger; import javax.ws.rs.ApplicationPath; import fr.ulille.iut.pizzaland.beans.Ingredient; +import fr.ulille.iut.pizzaland.beans.Pizza; import fr.ulille.iut.pizzaland.dao.IngredientDao; import fr.ulille.iut.pizzaland.dao.PizzaDao; @@ -33,6 +34,7 @@ public class ApiV1 extends ResourceConfig { FileReader reader = new FileReader( getClass().getClassLoader().getResource("ingredients.json").getFile() ); List<Ingredient> ingredients = JsonbBuilder.create().fromJson(reader, new ArrayList<Ingredient>(){}.getClass().getGenericSuperclass()); + IngredientDao ingredientDao = BDDFactory.buildDao(IngredientDao.class); ingredientDao.dropTable(); ingredientDao.createTable(); @@ -40,7 +42,21 @@ public class ApiV1 extends ResourceConfig { ingredientDao.insert(ingredient.getName()); } + FileReader readerPizza = new FileReader( getClass().getClassLoader().getResource("pizzas.json").getFile() ); + List<Pizza> pizzas= JsonbBuilder.create().fromJson(readerPizza, new ArrayList<Pizza>(){}.getClass().getGenericSuperclass()); PizzaDao pizzaDao = BDDFactory.buildDao(PizzaDao.class); + pizzaDao.dropTablePizza(); + pizzaDao.dropTableAssociations(); + pizzaDao.createTableAndIngredientAssociation(); + for (Pizza pizza : pizzas) { + System.out.println(pizza.getName() + " - " +pizza.getIngredients().toString()); + pizzaDao.insert(pizza.getName()); + for(Ingredient ingredient : pizza.getIngredients()) { + System.out.println(pizza.getId() +"-" +ingredient.getId()); + pizzaDao.insertAssoc(pizza.getId(), ingredient.getId()); + } + + } } catch ( Exception ex ) { diff --git a/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java index 2961374..101c8ba 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java +++ b/src/main/java/fr/ulille/iut/pizzaland/beans/Pizza.java @@ -42,7 +42,7 @@ public class Pizza { } public List<Ingredient> getIngredients() { - return ingredient; + return this.ingredient; } public static PizzaDto toDto(Pizza p) { diff --git a/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java index 2eafe9c..cc7681c 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java +++ b/src/main/java/fr/ulille/iut/pizzaland/dao/PizzaDao.java @@ -12,7 +12,7 @@ import fr.ulille.iut.pizzaland.beans.Pizza; public interface PizzaDao { - @SqlUpdate("CREATE TABLE IF NOT EXISTS Pizzas (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL") + @SqlUpdate("CREATE TABLE IF NOT EXISTS Pizzas (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL)") void createPizzaTable(); @SqlUpdate("CREATE TABLE IF NOT EXISTS PizzaIngredientsAssociation(pizza Integer," @@ -23,8 +23,8 @@ public interface PizzaDao { @Transaction default void createTableAndIngredientAssociation() { - createAssociationTable(); createPizzaTable(); + createAssociationTable(); } @@ -50,6 +50,10 @@ public interface PizzaDao { @SqlUpdate("INSERT INTO Pizzas (name) VALUES(:name)") @GetGeneratedKeys long insert(String name); + + @SqlUpdate("INSERT INTO PizzaIngredientsAssociation (pizza,ingredient) VALUES(:pizza,:ingredient)") + @GetGeneratedKeys + long insertAssoc(long pizza,long ingredient); @SqlUpdate("DELETE FROM Pizzas WHERE id = :id") void remove(long id); diff --git a/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java b/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java index 891a3c8..8d232e0 100644 --- a/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java +++ b/src/main/java/fr/ulille/iut/pizzaland/resources/PizzaResource.java @@ -43,7 +43,7 @@ public class PizzaResource { public PizzaResource() { pizzas = BDDFactory.buildDao(PizzaDao.class); - pizzas.createPizzaTable(); + pizzas.createTableAndIngredientAssociation(); } @GET diff --git a/src/main/resources/pizzas.json b/src/main/resources/pizzas.json new file mode 100644 index 0000000..d15b145 --- /dev/null +++ b/src/main/resources/pizzas.json @@ -0,0 +1,6 @@ +[ + {"name": "reine","ingredient": [{"id":1,"name":"mozzarella" },{"id":2,"name":"jambon" },{"id":3,"name":"champignons" }]}, +{"name": "margarita","ingredient": [{"id":1,"name":"mozzarella" },{"id":2,"name":"jambon" },{"id":5,"name":"tomate" }]}, +{"name": "4 fromages","ingredient": [{"id":1,"name":"mozzarella" },{"id":8,"name":"fromage" }]}, +{"name": "pesto","ingredient": [{"id":1,"name":"mozzarella" },{"id":2,"name":"jambon" },{"id":6,"name":"merguez" }]} +] -- GitLab