Tâche 3 : Implémenter la méthode query() dans WordListOpenHelper¶
La méthode query() récupère les lignes de la base de données sélectionnées par une requête SQL.
Dans cet exemple, pour afficher les mots dans la RecyclerView, nous devons les récupérer de la base de données, un par un, selon les besoins. Le mot nécessaire est identifié par sa position dans la vue.
Ainsi, la méthode query possède un paramètre pour la position demandée et renvoie un WordItem.
1. Implémenter la méthode query()¶
-
Créer une méthode query qui prend un argument de position entier et renvoie un
WordItem. -
Construisez une requête qui ne renvoie que la n-ième ligne du résultat. Utilisez
LIMITavec position comme ligne et 1 comme nombre de lignes. -
Instanciez une variable
Cursorànullpour contenir le résultat de la base de données.La
SQLiteDatabaseprésente toujours les résultats sous la forme d'unCursordans un format de tableau qui ressemble à une base de données SQL.Un curseur est un pointeur dans une ligne de données structurées. Vous pouvez le considérer comme un tableau de lignes. La classe
Cursorfournit des méthodes pour déplacer le curseur dans cette structure et des méthodes pour obtenir les données des colonnes de chaque ligne. -
Instanciez une entrée
WordItem. -
Ajoutez un bloc
try/catch/finally. -
À l'intérieur du bloc
try,-
obtenez une base de données lisible si elle n'existe pas.
-
envoyez une requête brute à la base de données et stockez le résultat dans un curseur.
La méthode d'aide ouverte query peut construire une chaîne de requête SQL et l'envoyer en tant que
rawQueryà la base de données qui renvoie un curseur. Si vos données sont fournies par votre application et sous votre contrôle total, vous pouvez utiliser rawquery(). -
Déplacez le curseur sur le premier élément.
-
Définissez l'
IDet le mot de l'entréeWordItemsur les valeurs renvoyées par le curseur.
-
-
Dans le bloc
catch, enregistrez l'exception. -
Dans le bloc
finally, fermez le curseur et renvoyez l'entréeWordItem.
Solution O_O
2. La méthode onUpgrade¶
Chaque SQLiteOpenHelper doit implémenter la méthode onUpgrade(), qui détermine ce qui se passe si le numéro de version de la base de données change. Cela peut se produire si vous avez des utilisateurs existants de votre application qui utilisent une ancienne version de la base de données. Cette méthode est déclenchée lors de la première ouverture d'une base de données. L'action par défaut habituelle consiste à supprimer la base de données actuelle et à la recréer.
Important
Bien qu'il soit acceptable de supprimer la table dans un exemple d'application, dans une application de production, vous devez migrer soigneusement les précieuses données de l'utilisateur.
Vous pouvez utiliser le code ci-dessous pour implémenter la méthode onUpgrade() pour cet exemple.
Code standard pour onUpgrade() :
Félicitations !
Vous avez complété la tâche 3. Vous avez implémenté la méthode query() dans WordListOpenHelper.
N'oubliez pas de committer sur la branche tp-sqlite de votre dépot git local.