-
BDD avec Android
Bonjour à tous,
Je suis totalement débutant sur Android mais je voudrais me lancer dans la création de petites applications perso.
Mon premier projet : faire une application qui me permettra de voir le contenu de mon congélateur.
Pour cela, je souhaite avoir à l'ouverture de cette application la liste des catégories (viande, poisson, etc ...).
Lorsque je clique sur une catégorie, j'obtiens la liste détaillée des produits (côte de bœuf, DLC : 15/01/2013, case à cocher pour sélectionner le produit, etc ...) ==> voilà pour le principe.
J'aimerais également pouvoir ajouter des catégories et ajouter des produits, idem en suppression, idem pour une mise à jour.
J'ai lu sur différents forum dont celui-ci qu'il fallait utiliser SQLite. Le problème, c'est que selon l'article que je lis, chacun a une méthode différente :
http://www.ace-art.fr/wordpress/2011...se-de-donnees/
http://troll-me.fr/android-3-gestion...nnees-android/
http://androtruc.wordpress.com/tag/sqlite/
http://a-renouard.developpez.com/tut...ndroid/sqlite/
le livre "l'art du développement Android" édition 3
Tout le monde créer une class basée sur SQLiteOpenHelper ; mais pour le reste, je n'y comprend rien (certain créer un Repository => où faut-il le créer ?, etc ..., d'autre créer une class pour définir l'objet [dans mon cas, ce serait sans doute Catégories et Produit, d'autre ne créer rien de plus, etc ...)
En bref, je suis totalement perdu sur la meilleur méthode à utiliser.
Pouvez-vous m'aider, me conseiller pour me permettre d'avancer ?
Merci
-
Classe générique
Une partie d'une appli que j'ai réalisée (appli unique sur mon phone) utilise une base SQLite et permet d'enregistrer et visualiser des commentaires. J'ai donc créé une Classe commentaire pour rester dans la logique objet. Pour pouvoir utiliser ses variables dans la base et la ListView j'utilise des adapter.
Dans ton cas je pense qu'effectivement créer une Classe produit serait bien.
C'est ce qu'on appelle la généralisation en UML. Tes colonnes dans la base seraient alors : ID, type de produit, date de congélation, etc...
Corialement.
-
Merci pour réponse,
Donc si je comprend bien, il vaut mieux que je m'aide la méthode décrite sur ce site "Comment utiliser SQLite sous Android" par Axon de Tuto Mobile.
Cela semblait effectivement une bonne base. Par contre, sur la fin je galère car mon but est d'afficher ma liste non pas dans un Toast mais dans un ListView.
Mais en suivant tout vos conseils, je compte bien y arriver.
Merci
-
Bonjour,
Vu la simplicité de tes données, je passerais également par un mapping de celles-ci (qui devrait te prendre 5 minutes à faire).
Pour ce qui est de la construction de ta ListView (au lieu d'un simple Toast), ce n'est pas beaucoup plus complexe.
Pour récupérer les données dans ta base de données, tu feras une requête qui te fournira un Cursor. Ce Cursor n'est rien d'autre qu'une sorte de "liste" de résultats.
Sur base de cette liste de résultat tu pourras donc aisément créer l'adapter dont ta ListView aura besoin.
Je te conseille un des tutoriels de l'excellent Lars Vogel si tu veux plus d'information sur les ListView mais également sur les bases de données SQLite
Bien à toi.
Lionel
-
Merci pour cette réponse
Les liens que tu m'a donné vont bien m'aider :ccool:
a+
-
En général, en développement base de données dans un environnement OO, on a les éléments suivants:
Les objets "POJO" (Plain Old Java Object). Ce sont des objets qui représentent des entités à part entière... Par exemple "RayonCongelation", "ElementCongelation".... Ces objets offre quasiment toujours un accès par getter/setter aux informations qu'ils contiennent. Ils ne doivent par contre possèder aucune logique "business" (d'application).
Les objets "DAO" (Data Access Object). Ils sont responsables de passer d'une "requête" logique (getRayonCongelation(int id) par exemple) en POJOs... Il s'occuperont donc de la traduction entre les getter/setter des POJOs et les colonnes de la (les) table(s) SQLite. Il est à noter que la plupart du temps ces DAOs implémentent une interface, ce qui permet de passer d'un stockage SQLite à ... autre chose sans rien toucher au reste du code...
Les objets "Session" qui permettent de maintenir un certain ordre entre tous ces éléments.... (en particulier le SQLiteDatabase, mais pas que...)...
-
Merci à tous pour votre aide, j'ai bien avancé.
a+ :ccool: