Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio2:gestion_des_donnees_avec_sqlite [2024/12/02 08:55] – [2. La base de données SQLite] dthevenot | sio2:gestion_des_donnees_avec_sqlite [2024/12/02 09:47] (Version actuelle) – [5. Questions] dthevenot | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
===== Android(4) : Gestion des données avec SQLite ===== | ===== Android(4) : Gestion des données avec SQLite ===== | ||
+ | <alert type=" | ||
==== 1. Contexte : suite du projet Inventaire. | ==== 1. Contexte : suite du projet Inventaire. | ||
Les articles saisis devront être mémorisés dans une base de données SQLite sous Android. | Les articles saisis devront être mémorisés dans une base de données SQLite sous Android. | ||
Ligne 7: | Ligne 8: | ||
=== a. Généralités === | === a. Généralités === | ||
- | SQLite est un système de gestion de base de données compatible SQL **léger et embarqué**, | + | SQLite est un système de gestion de base de données compatible SQL **léger et embarqué**, |
Par ailleurs, SQLite garantit la conformité aux **propriétés ACID** : Atomicité, Cohérence, Isolation, Durabilité. Ceci assure la fiabilité des opérations de base de données, même en cas d’interruption soudaine du système. | Par ailleurs, SQLite garantit la conformité aux **propriétés ACID** : Atomicité, Cohérence, Isolation, Durabilité. Ceci assure la fiabilité des opérations de base de données, même en cas d’interruption soudaine du système. | ||
Ligne 56: | Ligne 57: | ||
=== a. Création de la couche métier === | === a. Création de la couche métier === | ||
- | * Dans app/ | + | * Dans //app/ |
- | * Dans ce package, créer la classe Java nommée Article. Cette classe nous servira de passerelle vers la base de données. | + | * Dans ce package, créer la classe Java nommée |
- | * La classe Article comprendra les attributs id (int initialisé à 0), reference(String), | + | * La classe Article comprendra les attributs |
- | * Elle devra disposer des accesseurs (getters), de la méthode toString() et de 2 constructeurs (clic droit puis Generate) : | + | * Elle devra disposer des accesseurs (//getters//), de la méthode |
* l'un avec tous les attributs | * l'un avec tous les attributs | ||
* l' | * l' | ||
Ligne 65: | Ligne 66: | ||
=== b. Création de la base de données, classe CreateBdInventaire === | === b. Création de la base de données, classe CreateBdInventaire === | ||
- | * Toujours dans **app/ | + | * Toujours dans //app/ |
* Dans ce package, créer la classe Java **CreateBdInventaire**. Cette classe hérite de la classe **SQLiteOpenHelper**. Elle permet de définir la structure de la base de données. | * Dans ce package, créer la classe Java **CreateBdInventaire**. Cette classe hérite de la classe **SQLiteOpenHelper**. Elle permet de définir la structure de la base de données. | ||
* Renseigner la superclass | * Renseigner la superclass | ||
* Redéfinir les méthodes onCreate et onUpdate | * Redéfinir les méthodes onCreate et onUpdate | ||
* Générer automatiquement le constructeur, | * Générer automatiquement le constructeur, | ||
+ | {{ : | ||
* Lors de l' | * Lors de l' | ||
- | * si elle n' | + | * si elle n' |
- | * si elle existe, il vérifie la version, si la version de la base a changé, la base sera regénérée, | + | * si elle existe, il vérifie la version, si la version de la base a changé, la base sera regénérée, |
- | * Code de la classe CreateBdInventaire : | + | * Code de la classe |
< | < | ||
public class CreateBdInventaire extends SQLiteOpenHelper { | public class CreateBdInventaire extends SQLiteOpenHelper { | ||
Ligne 115: | Ligne 116: | ||
</ | </ | ||
- | **NB** Les instructions Log.d permettent de pister le déroulement du programme. d : debug | + | **NB** Les instructions Log.d permettent de pister le déroulement du programme. |
=== c. Création de la classe gérant les accès à la base de données : DAO === | === c. Création de la classe gérant les accès à la base de données : DAO === | ||
Ligne 128: | Ligne 129: | ||
</ | </ | ||
- | * d'un constructeur : // | + | * d'un constructeur : {{ : |
- | * d'une méthode open pour ouvrir la base de données | + | * d'une méthode open pour ouvrir la base de données |
- | * et d'une méthode close pour la fermer// | + | * et d'une méthode close pour la fermer |
=== d. Création de la classe gérant les accès à la table article : Article DAO === | === d. Création de la classe gérant les accès à la table article : Article DAO === | ||
- | Enfin, dans le package bdd, nous allons ajouter la classe ArticleDAO chargée de gérer les accès à la table article (méthodes CRUD). | + | Enfin, dans le package bdd, nous allons ajouter la classe |
- | Cette classe disposera d' | + | Cette classe disposera d' |
Puis des méthodes CRUD, notamment la méthode create(Article unArticle), chargée de créer l' | Puis des méthodes CRUD, notamment la méthode create(Article unArticle), chargée de créer l' | ||
- | // | + | Les autres méthodes d' |
=== e. Insertion des données saisies === | === e. Insertion des données saisies === | ||
Ligne 147: | Ligne 148: | ||
Modification de la classe **AjoutArticleActivity** : jusqu' | Modification de la classe **AjoutArticleActivity** : jusqu' | ||
* 1) Ajouter des propriétés à cette classe : | * 1) Ajouter des propriétés à cette classe : | ||
- | * a. Déclarer la variable d' | + | * a. Déclarer la variable d' |
- | * b. Déclarer un objet de type Article : Article art = null; | + | * b. Déclarer un objet de type Article : //Article art = null;// |
* c. Déclarer les différents contrôles graphiques : | * c. Déclarer les différents contrôles graphiques : | ||
< | < | ||
Ligne 172: | Ligne 173: | ||
</ | </ | ||
- | * 2) À la fin de la méthode onCreate, appeler la méthode creationArticle que l' | + | * 2) À la fin de la méthode |
* 3) Ajouter la méthode creationArticle() | * 3) Ajouter la méthode creationArticle() | ||
< | < | ||
Ligne 216: | Ligne 217: | ||
* 4) Fermer la base de données quand l' | * 4) Fermer la base de données quand l' | ||
* 5) Tester : Ajouter des articles. Le message indiquant le numéro de l' | * 5) Tester : Ajouter des articles. Le message indiquant le numéro de l' | ||
+ | |||
+ | < | ||
==== 4. Vérifications ==== | ==== 4. Vérifications ==== | ||
Ligne 233: | Ligne 236: | ||
==== 5. Questions ==== | ==== 5. Questions ==== | ||
- | Répondre aux questions suivantes à la suite du document déposé sur le Drive. | + | Répondre aux questions suivantes |
- Présenter brièvement le travail à effectuer | - Présenter brièvement le travail à effectuer | ||
- Citer les 3 classes permettant la gestion de la base de données, et préciser le rôle de chacune | - Citer les 3 classes permettant la gestion de la base de données, et préciser le rôle de chacune | ||
Ligne 241: | Ligne 244: | ||
- Expliquer comment procéder pour ajouter la table categorie(id, | - Expliquer comment procéder pour ajouter la table categorie(id, | ||
+ | < |