Les accès aux données sous Android peuvent être réalisés de plusieurs façons. Les fichiers, privés ou non, les accès réseaux, propriétaires ou via le Cloud… et la base de données SQL.

 

La base de données SQLite est disponible sous Android, et via quelques classes, nous avons tous les outils pour créer, écrire et lire la base.

 

La création de la base et sa mise à jour

 

Pour créer la base de données, mieux vaut utiliser les outils qui existent… et pour cela dériver la classe SQLiteOpenHelper. Vous aurez à compléter deux hook : la création, la mise à jour. Lors de la création, il faudra créer les tables, pour la mise à jour, le plus simple (oui oui) sera de supprimer les tables et de les recréer.

 

Dans l’exemple de code suivant, des constantes statiques représentent les noms des base, tables et colonnes, version . Les noms des colonnes sont publiques, ce qui facilitera leur usage.

 

 

 

L’insertion des données

 

La première chose à faire sera de créer un objet du type SQLiteOpenHelper. Attention, comme vous avez créé votre propre classe dérivée, ce sera cette classe à qu’il faudra utiliser.

 

Pour insérer des données, il y a plusieurs façons de pratiquer. Il est possible d’utiliser des méthodes toutes faites ! Il faudra auparavant ouvrir une connexion à la base en utilisant getWritableDatabase().

 

Une fois l’insertion réalisée, vous obtenez en retour le nombre d’enregistrement inséré, ou bien -1 pour signaler un échec.

 

Dans l’exemple suivant, l’insertion est faite via la méthode insert(…) en fournissant les données sous la forme de tableau associatif appelé ici ContentValues. La fermeture de la connexion n’est pas oubliée.

 

 

 

La récupération des données

 

Pour lire les tables, le chemin inverse doit être réalisé. Tout d’abord ouvrir une connexion en lecture. Pour faire une requête. Vous pouvez faire la requête en utilisant directement du SQL, ou bien passer par les méthodes « aidantes » comme query(…). Le résultat est un Cursor, c’est-à-dire un accès aux données de résultat. Une sorte d’itérateur sur resultset. Il faut alors se positionner sur le premier enregistrement, puis avancer tant que vrai.

 

Dans le code suivant, vous voyez que le résultat sert à alimenter un ArrayAdapter, car les ligne sont affichées dans une ListView. Le code xml qui suit est celui de l’interface graphique.

 

 

 

Conclusion

 

Sous Android, il est possible de penser les données façon base de données relationnelle. Pour cela, utilisez SQLite et gérer vos connexions, vos insertions, et requêtes avec SQL.