Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package dao; import bean.Ouvrage; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.document.JsonDocument; import com.couchbase.client.java.document.json.JsonObject; import com.couchbase.client.java.view.ViewQuery; import com.couchbase.client.java.view.ViewResult; import com.couchbase.client.java.view.ViewRow; import java.util.ArrayList; import java.util.List; import org.joda.time.DateTime; import util.GenerateUUID; /** * * @author Khalid */ public class OuvrageDao { private static final String TABLE_NAME = "ouvrage"; private Bucket bucket; private CategorieDao categorieDao = new CategorieDao(); public OuvrageDao() { bucket = ConnectDB.getBucket(); } public String ajouter(Ouvrage ouvrage) { JsonObject ouvrageJson = ObjectToJson(ouvrage); JsonDocument ouvrageDocument = JsonDocument.create("ouvrage:" + GenerateUUID.generateUUID(), ouvrageJson); JsonDocument response = bucket.upsert(ouvrageDocument); return response.id(); } public void modifier(Ouvrage ouvrage) { JsonObject ouvrageJson = ObjectToJson(ouvrage); JsonDocument ouvrageDocument = JsonDocument.create(ouvrage.getId(), ouvrageJson); bucket.replace(ouvrageDocument); } public void supprimer(String id) { //JsonDocument doc = bucket.get(id); bucket.async().remove(id); //bucket.remove(id); } public Ouvrage findById(String id) { JsonDocument doc = bucket.get(id); return DocToObject(doc); } public List<Ouvrage> findAll() { List<Ouvrage> ouvrages = new ArrayList<>(); ViewResult results = bucket.query(ViewQuery.from("ouvrage", "all")); for (ViewRow row : results) { Ouvrage ouvrage = DocToObject(row.document()); if (ouvrage != null) { ouvrages.add(ouvrage); } } return ouvrages; } private JsonObject ObjectToJson(Ouvrage ouvrage) { DateTime date = new DateTime(ouvrage.getDatePublication()); JsonObject ouvrageJson = JsonObject.empty().put("isbn", ouvrage.getIsbn()).put("titre", ouvrage.getTitre()) .put("auteur", ouvrage.getAuteur()).put("numBL", ouvrage.getNumBL()) .put("numBC", ouvrage.getNumBC()).put("categorie", ouvrage.getCategorie().getId()) .put("prix", ouvrage.getPrixUnitaire()).put("librairie", ouvrage.getLibrairie()) .put("datePublication", date.toLocalDate().toString()).put("edition", ouvrage.getEdition()); return ouvrageJson; } private Ouvrage DocToObject(JsonDocument doc) { if (doc == null) return null; // Doc supprimer Ouvrage ouvrage = new Ouvrage(); ouvrage.setId(doc.id()); ouvrage.setIsbn(doc.content().getString("isbn")); ouvrage.setTitre(doc.content().getString("titre")); ouvrage.setAuteur(doc.content().getString("auteur")); ouvrage.setNumBC(doc.content().getString("numBC")); ouvrage.setNumBL(doc.content().getString("numBL")); ouvrage.setCategorie(categorieDao.findById(doc.content().getString("categorie"))); ouvrage.setEdition(doc.content().getString("edition")); ouvrage.setLibrairie(doc.content().getString("librairie")); ouvrage.setPrixUnitaire(doc.content().getDouble("prix")); DateTime date = DateTime.parse(doc.content().getString("datePublication")); ouvrage.setDatePublication(date.toDate()); return ouvrage; } }