PanierSQLite.java :  » Log » libtool » org » hirodana » libtool » sqLite » Android Open Source

Android Open Source » Log » libtool 
libtool » org » hirodana » libtool » sqLite » PanierSQLite.java
package org.hirodana.libtool.sqLite;

import java.util.ArrayList;

import org.hirodana.libtool.objects.CD;
import org.hirodana.libtool.objects.Catalogue;
import org.hirodana.libtool.objects.Dvd;
import org.hirodana.libtool.objects.Livre;
import org.hirodana.libtool.objects.Oeuvre;
import org.hirodana.libtool.objects.Revue;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class PanierSQLite extends SQLiteOpenHelper {
  
  private static int DATABASE_VERSION = 5; //version de la base  incrmenter  chaque changement
  
  private static final String BASE_PANIER = "panier.db"; //Nom de la bdd

  //Noms des tables de la bdd
  private static final String TABLE_LIVRES = "table_livres";
  private static final String TABLE_CD = "table_cd";
  private static final String TABLE_DVD = "table_dvd";
  private static final String TABLE_REVUES = "table_revues";
  
  //Nom et numros des collonnes des tables
  private static final String COL_ID = "ID";
  private static final int NUM_COL_ID = 0;
  
  private static final String COL_TITRE = "Titre";
  private static final int NUM_COL_TITRE = 1;
  
  private static final String COL_DESCRIPTION = "Description";
  private static final int NUM_COL_DESCRIPTION = 2;
  
  private static final String COL_EDITEUR = "Editeur";
  private static final int NUM_COL_EDITEUR = 3;
  
  private static final String COL_NBEXEMPLAIRE = "Nb_Exemplaire";
  private static final int NUM_COL_NBEXEMPLAIRE = 4  ;
  
  private static final String COL_AUTEUR = "Auteur";
  private static final int NUM_COL_AUTEUR = 5;
  private static final String COL_REALISATEUR = "Ralisateur";
  private static final int NUM_COL_REALISATEUR = 5;
  private static final String COL_CHANTEUR = "Chanteur";
  private static final int NUM_COL_CHANTEUR = 5;
  private static final String COL_PERIOD = "Priodicit";
  private static final int NUM_COL_PERIOD = 5;
  
  private static final String COL_COLLECTION = "Collection";
  private static final int NUM_COL_COLLECTION = 6;
  private static final String COL_EAN = "EAN";
  private static final int NUM_COL_EAN = 6;
  private static final String COL_ISSN = "ISSN";
  private static final int NUM_COL_ISSN = 6;
  
  private static final String COL_ISBN = "ISBN";
  private static final int NUM_COL_ISBN = 7;

  

  private SQLiteDatabase bdd;
   
  //Requete de cration de la table livre
  private static final String CREATE_LIVRE = "CREATE TABLE " + TABLE_LIVRES + " ("
  + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_TITRE +" TEXT NOT NULL,"+ COL_DESCRIPTION +", "+ 
  COL_EDITEUR +", "+  COL_NBEXEMPLAIRE +", "+  COL_AUTEUR +", "+  COL_COLLECTION +", "+  COL_ISBN + ");"; 
  
  //Requete de cration de la table cd
  private static final String CREATE_CD = "CREATE TABLE " + TABLE_CD + " ("
  + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_TITRE + " TEXT NOT NULL,"+ COL_DESCRIPTION +", "+  
  COL_EDITEUR +", "+  COL_NBEXEMPLAIRE +", "+COL_CHANTEUR +", "+  COL_EAN + ");";
  
  //Requete de cration de la table dvd
  private static final String CREATE_DVD = "CREATE TABLE " + TABLE_DVD + " ("
  + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_TITRE + " TEXT NOT NULL,"+ COL_DESCRIPTION +", "+  
  COL_EDITEUR +", "+  COL_NBEXEMPLAIRE +", "+COL_REALISATEUR +", "+   COL_EAN + ");";
  
  //Requete de cration de la table revue
  private static final String CREATE_REVUE = "CREATE TABLE " + TABLE_REVUES + " ("
  + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_TITRE + " TEXT NOT NULL,"+ COL_DESCRIPTION +", "+  
  COL_EDITEUR +", "+  COL_NBEXEMPLAIRE +", "+  COL_PERIOD +", "+  COL_ISSN + ");";


  public PanierSQLite(Context context) {
    //On cr la base
    super(context, BASE_PANIER, null, DATABASE_VERSION);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
    //on cr les tables  partir des requtes 
    db.execSQL(CREATE_LIVRE);
    db.execSQL(CREATE_CD);
    db.execSQL(CREATE_DVD);
    db.execSQL(CREATE_REVUE);
  }
 
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.i("onUpgrade", "Mise  jour de la table version : "+newVersion);
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_LIVRES + ";");
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CD + ";");
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_DVD + ";");
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_REVUES + ";");
    onCreate(db);
  }
  
  public void open(){
    //on ouvre la BDD en criture
        Log.i("openDB", "Checking sqliteDBInstance...");
        if(this.bdd == null)
        {
            Log.i("openDB", "Creating sqliteDBInstance...");
            this.bdd = this.getWritableDatabase();
        }
    }
 
  public void close(){
    //on ferme l'accs  la BDD
    bdd.close();
  }
 
  public SQLiteDatabase getBDD(){
    return bdd;
  }
  
  public Catalogue getCatalogue(){
    Catalogue catalogue = new Catalogue();
    
    //on lui ajoute toutes les ArrayList<Oeuvre>() 
    catalogue.addLivres(getAllLivres());
    catalogue.addCD(getAllCD());
    catalogue.addDvd(getAllDvd());
    catalogue.addRevue(getAllRevues());
    
    return catalogue;
  }

  
  /** Appele pour vider le panier **/
  public void videCatalogue() {    
    bdd.delete(TABLE_CD, null, null);
    bdd.delete(TABLE_LIVRES, null, null);
    bdd.delete(TABLE_DVD, null, null);
    bdd.delete(TABLE_REVUES, null, null);
  }
//-------------------------------------------------------------Livres---------------------------------------------------
  
  
  public long insertLivre(Livre livre){
    //Cration d'un ContentValues (fonctionne comme une HashMap)
    ContentValues valeurs = new ContentValues();
    //on lui ajoute une valeur associ  une cl (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
        valeurs.put(COL_ID, livre.getIdOeuvre());
        valeurs.put(COL_TITRE, livre.getTitre());
        valeurs.put(COL_DESCRIPTION, livre.getDescription());
        valeurs.put(COL_EDITEUR, livre.getEditeur());
        valeurs.put(COL_NBEXEMPLAIRE, livre.getNbExemplaireDispo());
        valeurs.put(COL_AUTEUR, livre.getAuteur());
        valeurs.put(COL_COLLECTION, livre.getCollection());
        valeurs.put(COL_ISBN, livre.getIsbn());
    
    //on insre l'objet dans la BDD via le ContentValues
        Log.i("insertion Panier","On insert : "+livre.getTitre());
    return bdd.insert(TABLE_LIVRES, null, valeurs);
    
  }
  
  public int removeLivreWithId(int id){
    //Suppression d'un livre de la BDD grce  l'ID
    return bdd.delete(TABLE_LIVRES, COL_ID + " LIKE \"" + id +"\"", null);
  }
 
  public ArrayList<Oeuvre> getAllLivres(){
    
    Cursor c = bdd.query(TABLE_LIVRES, null, null , null, null, null, null);
    
    Log.v("BDD","NbLivres = "+c.getCount());
    if(c.moveToFirst()){
      ArrayList<Oeuvre> panierLivres= new ArrayList<Oeuvre>();
      do{
               Log.v("Contenu Base",c.getString(c.getColumnIndex(COL_TITRE)));
               panierLivres.add(cursorToLivre(c));

             }while (c.moveToNext());
      
      c.close();
      
            return panierLivres;
        }
        else
        {
            return new ArrayList<Oeuvre>();
        }

  }
 
  
  public Livre getLivreWithId(int id){
    //Rcupre dans un Cursor les valeur correspondant  un livre contenu dans la BDD (ici on slectionne le livre grce  son id)
    Cursor c = bdd.query(TABLE_LIVRES, new String[] {COL_ID, COL_TITRE, COL_DESCRIPTION, COL_EDITEUR, COL_NBEXEMPLAIRE, COL_AUTEUR, COL_COLLECTION, COL_ISBN}, COL_ID + " LIKE \"" + id +"\"", null, null, null, null);
    
    //si aucun lment n'a t retourn dans la requte, on renvoie null
    if (c.getCount() == 0)
      return null;
    
    //Sinon on se place sur le premier lment
    c.moveToFirst();
    Livre livre = cursorToLivre(c);
    c.close();
    
    return livre ;
  }
  
  //Cette mthode permet de convertir un cursor en un livre
  private Livre cursorToLivre(Cursor c){  
    
    //On cr un livre
    Livre livre = new Livre();
    //on lui affecte toutes les infos grce aux infos contenues dans le Cursor
    livre.setId(c.getInt(NUM_COL_ID));
    livre.setTitre(c.getString(NUM_COL_TITRE));
    livre.setDescription(c.getString(NUM_COL_DESCRIPTION));
    livre.setEditeur(c.getString(NUM_COL_EDITEUR));
    livre.setNbExemplaire(c.getInt(NUM_COL_NBEXEMPLAIRE));
    livre.setAuteur(c.getString(NUM_COL_AUTEUR));
    livre.setIsbn(c.getString(NUM_COL_ISBN));
    livre.setCollection(c.getString(NUM_COL_COLLECTION));
    
    Log.i("Panier","On convertit : "+livre.getTitre());
    c.close();
 
    //On retourne le livre
    return livre;
    
  }
  
//-------------------------------------------------------------DVD---------------------------------------------------
  
  
  public long insertDvd(Dvd dvd){
    //Cration d'un ContentValues (fonctionne comme une HashMap)
    ContentValues valeurs = new ContentValues();
    //on lui ajoute une valeur associ  une cl (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
        valeurs.put(COL_ID, dvd.getIdOeuvre());
        valeurs.put(COL_TITRE, dvd.getTitre());
        valeurs.put(COL_DESCRIPTION, dvd.getDescription());
        valeurs.put(COL_EDITEUR, dvd.getEditeur());
        valeurs.put(COL_NBEXEMPLAIRE, dvd.getNbExemplaireDispo());
        valeurs.put(COL_REALISATEUR, dvd.getRealisateur());
        valeurs.put(COL_EAN, dvd.getEan());
    
    //on insre l'objet dans la BDD via le ContentValues
        Log.i("insertion Panier","On insert : "+dvd.getTitre());
    return bdd.insert(TABLE_DVD, null, valeurs);
    
  }
  
  public int removeDvdWithId(int id){
    //Suppression d'un DVD de la BDD grce  l'ID
    return bdd.delete(TABLE_DVD, COL_ID + " LIKE \"" + id +"\"", null);
  }
 
  public ArrayList<Oeuvre> getAllDvd(){
    
    Cursor c = bdd.query(TABLE_DVD, null, null , null, null, null, null);
    
    Log.v("BDD","NbDVD = "+c.getCount());
    if(c.moveToFirst()){
      ArrayList<Oeuvre> panierDvd= new ArrayList<Oeuvre>();
      do{
               Log.v("Contenu Base",c.getString(c.getColumnIndex(COL_TITRE)));
               panierDvd.add(cursorToDvd(c));

             }while (c.moveToNext());
      
      c.close();
      
            return panierDvd;
        }
        else
        {
            return new ArrayList<Oeuvre>();
        }

  }
 
  
  public Dvd getDvdWithId(int id){
    //Rcupre dans un Cursor les valeur correspondant  un DVD contenu dans la BDD (ici on slectionne le DVD grce  son id)
    Cursor c = bdd.query(TABLE_DVD, new String[] {COL_ID, COL_TITRE, COL_DESCRIPTION, COL_EDITEUR, COL_NBEXEMPLAIRE, COL_REALISATEUR, COL_EAN}, COL_ID + " LIKE \"" + id +"\"", null, null, null, null);
    
    //si aucun lment n'a t retourn dans la requte, on renvoie null
    if (c.getCount() == 0)
      return null;
    
    //Sinon on se place sur le premier lment
    c.moveToFirst();
    Dvd dvd = cursorToDvd(c);
    c.close();
    
    return dvd ;
  }
  
  //Cette mthode permet de convertir un cursor en un livre
  private Dvd cursorToDvd(Cursor c){  
    
    //On cr un livre
    Dvd dvd = new Dvd();
    //on lui affecte toutes les infos grce aux infos contenues dans le Cursor
    dvd.setId(c.getInt(NUM_COL_ID));
    dvd.setTitre(c.getString(NUM_COL_TITRE));
    dvd.setDescription(c.getString(NUM_COL_DESCRIPTION));
    dvd.setEditeur(c.getString(NUM_COL_EDITEUR));
    dvd.setNbExemplaire(c.getInt(NUM_COL_NBEXEMPLAIRE));
    dvd.setRealisateur(c.getString(NUM_COL_REALISATEUR));
    dvd.setEan(c.getString(NUM_COL_EAN));
    
    Log.i("Panier","On convertit : "+dvd.getTitre());
    c.close();
    //On retourne le livre
    return dvd;
    
  }
  
  
//-------------------------------------------------------------CD----------------------------------------------------

  
  public long insertCD(CD cd){
    //Cration d'un ContentValues (fonctionne comme une HashMap)
    ContentValues valeurs = new ContentValues();
    //on lui ajoute une valeur associ  une cl (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
        valeurs.put(COL_ID, cd.getIdOeuvre());
        valeurs.put(COL_TITRE, cd.getTitre());
        valeurs.put(COL_DESCRIPTION, cd.getDescription());
        valeurs.put(COL_EDITEUR, cd.getEditeur());
        valeurs.put(COL_NBEXEMPLAIRE, cd.getNbExemplaireDispo());
        valeurs.put(COL_CHANTEUR, cd.getInterprete());
        valeurs.put(COL_EAN, cd.getEan());
    
    //on insre l'objet dans la BDD via le ContentValues
    return bdd.insert(TABLE_CD, null, valeurs);
    
  }
  
  public int removeCDWithID(int id){
    //Suppression d'un CD de la BDD grce  l'ID
    return bdd.delete(TABLE_CD, COL_ID + " = " +id, null);
  }
 
  public ArrayList<Oeuvre> getAllCD(){
    
    Cursor c = bdd.query(TABLE_CD, null, null , null, null, null, null);
    
    Log.v("BDD","NbCD = "+c.getCount());
    if(c.getCount() >0)
        {
      ArrayList<Oeuvre> panierCD= new ArrayList<Oeuvre>();
            int i = 0;
 
            while (c.moveToNext())
            {
               Log.v("Contenu Base",c.getString(c.getColumnIndex(COL_TITRE)));
               panierCD.add(cursorToCD(c));
                 i++;
             }
            c.close();
            
            return panierCD;
        }
        else
        {
            return new ArrayList<Oeuvre>();
        }

  }
 
  
  public CD getCDWithId(int id){
    //Rcupre dans un Cursor les valeur correspondant  un CD contenu dans la BDD (ici on slectionne le livre grce  son id)
    Cursor c = bdd.query(TABLE_CD, new String[] {COL_ID, COL_TITRE, COL_DESCRIPTION, COL_EDITEUR, COL_NBEXEMPLAIRE, COL_CHANTEUR, COL_EAN}, COL_ID + " LIKE \"" + id +"\"", null, null, null, null);
    
    //si aucun lment n'a t retourn dans la requte, on renvoie null
    if (c.getCount() == 0)
      return null;
 
    //Sinon on se place sur le premier lment
    c.moveToFirst();
    CD cd = cursorToCD(c);
    c.close();
    
    return cd ;
  }
  
  //Cette mthode permet de convertir un cursor en un CD
  private CD cursorToCD(Cursor c){  

    //On cr un CD
    CD cd = new CD();
    //on lui affecte toutes les infos grce aux infos contenues dans le Cursor
    cd.setId(c.getInt(NUM_COL_ID));
    cd.setTitre(c.getString(NUM_COL_TITRE));
    cd.setDescription(c.getString(NUM_COL_DESCRIPTION));
    cd.setEditeur(c.getString(NUM_COL_EDITEUR));
    cd.setNbExemplaire(c.getInt(NUM_COL_NBEXEMPLAIRE));
    cd.setChanteur(c.getString(NUM_COL_CHANTEUR));
    cd.setEan(c.getString(NUM_COL_EAN));
    c.close();
 
    //On retourne le CD
    return cd;
    
  }  
  
//-------------------------------------------------------------Revues------------------------------------------------

  
  public long insertRevue(Revue revue){
    //Cration d'un ContentValues (fonctionne comme une HashMap)
    ContentValues valeurs = new ContentValues();
    //on lui ajoute une valeur associ  une cl (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
        valeurs.put(COL_ID, revue.getIdOeuvre());
        valeurs.put(COL_TITRE, revue.getTitre());
        valeurs.put(COL_DESCRIPTION, revue.getDescription());
        valeurs.put(COL_EDITEUR, revue.getEditeur());
        valeurs.put(COL_NBEXEMPLAIRE, revue.getNbExemplaireDispo());
        valeurs.put(COL_ISSN, revue.getIssn());
        valeurs.put(COL_PERIOD,revue.getPeriodicite());
    
    //on insre l'objet dans la BDD via le ContentValues
    return bdd.insert(TABLE_REVUES, null, valeurs);
    
  }
  

  public int removeRevueWithID(int id){
    //Suppression d'une revue de la BDD grce  l'ID
    return bdd.delete(TABLE_REVUES, COL_ID + " = " +id, null);
  }
 
  public ArrayList<Oeuvre> getAllRevues(){
    
    Cursor c = bdd.query(TABLE_REVUES, null, null , null, null, null, null);
    
    Log.v("BDD","NbRevues = "+c.getCount());
    if(c.getCount() >0)
        {
      ArrayList<Oeuvre> panierRevues= new ArrayList<Oeuvre>();
            int i = 0;
 
            while (c.moveToNext())
            {
               Log.v("Contenu Base",c.getString(c.getColumnIndex(COL_TITRE)));
               panierRevues.add(cursorToRevue(c));
                 i++;
             }
            
            c.close();
            
            return panierRevues;
        }
        else
        {
            return new ArrayList<Oeuvre>();
        }

  }
  
  public Revue getRevueWithId(int id){
    //Rcupre dans un Cursor les valeur correspondant  une revue contenue dans la BDD (ici on slectionne la revue grce  son id)
    Cursor c = bdd.query(TABLE_REVUES, new String[] {COL_ID, COL_TITRE, COL_DESCRIPTION, COL_EDITEUR, COL_NBEXEMPLAIRE, COL_ISSN, COL_PERIOD}, COL_ID + " LIKE \"" + id +"\"", null, null, null, null);
    //si aucun lment n'a t retourn dans la requte, on renvoie null
    if (c.getCount() == 0)
      return null;
 
    //Sinon on se place sur le premier lment
    c.moveToFirst();
    Revue revue = cursorToRevue(c);
    c.close();
    
    return revue;
  }
  
  //Cette mthode permet de convertir un cursor en une revue
  private Revue cursorToRevue(Cursor c){  

    //On cr une revue
    Revue revue = new Revue();
    //on lui affecte toutes les infos grce aux infos contenues dans le Cursor
    revue.setId(c.getInt(NUM_COL_ID));
    revue.setTitre(c.getString(NUM_COL_TITRE));
    revue.setDescription(c.getString(NUM_COL_DESCRIPTION));
    revue.setEditeur(c.getString(NUM_COL_EDITEUR));
    revue.setNbExemplaire(c.getInt(NUM_COL_NBEXEMPLAIRE));
    revue.setPeriod(c.getString(NUM_COL_PERIOD));
    revue.setIssn(c.getString(NUM_COL_ISSN));
    
    c.close();
    //On retourne la revue
    return revue;
    
  }
 
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.