Accès à la base de données

publicité
635.1 / PROGRAMMATION Accès à la base de données 1. Base de données  Base SQLite intégrée à Android – voir www.sqlite.com. Une base de données SQLite est intégralement stockée dans un seul fichier.  Une base de données n’est accessible que par l’application qui la crée ; l’accès par d’autres applications peut être implanté par la création de fournisseurs de contenu ou de services.  La base de données est stockée dans : /data/data/<package>/databases/<nom base> Exemple : /data/data/pd.a14.base.bd/databases/GestionBD.db  Il est possible d’examiner une base de données en mode de commande en démarrant un shell sur l’émulateur : adb shell ; la base de données peut ensuite être examinée au moyen de l’outil sqlite3 : sqlite3 <chemin complet base>. Voir aussi la documentation : http://developer.android.com/tools/help/adb.html#sqlite.  Le plug‐in SQLite Manager pour FireFox permet de gérer une base SQLite. Pour employer cet outil, vous devez d’abord recopier le fichier sous Windows au moyen de la commande : adb pull <chemin complet base> <chemin complet windows>.  Le plug‐in CellObject SQLite pour Eclipse permet d’examiner le contenu d’une base de l’émulateur : http://campus.hesge.ch/Daehne/Software/CellObjectSQLite/net.cellobject.sqlitexmlbrowser_1.2.0.zip  Remarque : aucune de ces trois stratégies ne peut être appliquée à un téléphone qui n’est pas rooté (mais elle peuvent bien sûr être appliquées avec l’émulateur). 2. Illustration  On gère une base de données de prêt de BD dont voici le modèle physique :  La création et la mise à jour d’une base de données sont gérées par une classe dérivée de android.database.sqlite.SQLiteOpenHelper.  Il s’agit d’une classe abstraite avec la plupart de ses méthodes implantées pour laquelle il faut définir les méthodes abstraites : - onCreate() : appelée par la système lorsque la base n’existe pas. - onUpgrade() : appelée par le système lorsque la version de la base a changé.  On crée une instance de cette classe et on appelle : - getWritableDatabase() : ouverture de la base en lecture / écriture. - getReadableDatabase() : ouverture de la base en lecture seule. - close() : fermeture de la base.  Ces méthodes retournent une instance de la classe qui modélise la base de données : - android.database.sqlite.SQLiteDatabase. Peter Daehne 1 / 2 Version 1.9 – 18.11.2014 3. Architecture et méthodes  Les méthodes rawQuery() et execSQL() de SQLiteDataBase permettent d’envoyer n’importe quelle requête SQL exprimée sous la forme d’un String à la base de données.  Pour les requêtes du CRUD, il faut leur préférer les méthodes insert(), query(), update() et delete() qui forment une couche d’abstraction au‐dessus du SQL et pour lesquelles il n’y a donc aucun risque qu’une erreur de syntaxe SQL ne se produise. Peter Daehne 2 / 2 Version 1.9 – 18.11.2014 
Téléchargement