1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| public class SqliteProvider {
private Context ctx;
public SqliteProvider(Context ctx){
// Ici on ouvre la connexion avec la base sqlite
this.ctx = ctx;
try {
// Le deuxième paramètre correspond au paquet où est situé la classe
DataFramework.getInstance().open(ctx, "com.collekt");
}
catch (Exception e) { }
}
// Ajoute un Livre passé en paramètre puis retourne son ID
public long addLivre(Livre l){
// On créé un objet Entity avec en paramètre le nom de la table (ici Livre)
Entity ent = new Entity("livres");
// Il existe une methode setValue pour tous les types de données
ent.setValue("titre", l.getTitre());
ent.setValue("auteur", l.getAuteur());
ent.save();
// Pour récupérer l'id il faut toujours passer par cette fonction et non une requête
return ent.getId();
}
// Met à jour le Livre à partir de l'objet passé en paramètre
public boolean updateLivre(Livre l,long id){
// Pour récupérer un enregistrement il faut juste instancier l'objet Entity avec
// un paramètre Long correspondant à l'id de l'enregistrement
Entity ent = new Entity("livres",id);
// On peut ensuite modifier les valeurs
ent.setValue("titre", l.getTitre());
ent.setValue("auteur", l.getAuteur());
// Il ne faut surtout pas oublier de sauvegarder les changements
return ent.save();
}
// Supprime le Livre avec l'id en paramètre
public boolean removeLivre(long id){
Entity ent = new Entity("livres", id);
return ent.delete();
}
// Retourne le Livre avec l'ID en paramètre
public Livre getLivre(Long id){
Entity ent = new Entity("livres", id);
if(ent!=null)
return new Livre((String)ent.getValue("titre"), (String)ent.getValue("auteur"),ent.getId());
else
return new Livre();
}
// Retourne la liste de tout les Livres
public ArrayList getLivreList(){
// La méthode getEntityList(String table, String where, String order_by) permet d"effectuer un select sans la base
// Ici je n'avais pas besoin de filtrer
// pour info voici un exemple de requête filtrée:
// DataFramework.getInstance().getEntityList("produits", "devis_id = 3", "qte asc");
// Voici un exemple de parcours des résultats
// Iterator iter = categories.iterator();
// while (iter.hasNext()){
// Entity ent = (Entity)iter.next();
// System.out.println(ent.getString("nombre"));
// }
ArrayList<Entity> Livres_entities = DataFramework.getInstance().getEntityList("livres", "", "");
ArrayList<Livre> liste_Livres= new ArrayList();
for (Entity entity : Livres_entities) {
liste_Livres.add(new Livre(entity));
}
return liste_Livres;
}
// Fermeture de la base de données
protected void destroy() {
DataFramework.getInstance().close();
}
} |
Partager