635.1/PROGRAMMATION
Accèsàlabasededonnées
PeterDaehne1/2Version1.9–18.11.2014
1.Basededonnées
BaseSQLiteintégréeàAndroid–voirwww.sqlite.com.UnebasededonnéesSQLiteest
intégralementstockéedansunseulfichier.
Unebasededonnéesn’estaccessiblequeparl’applicationquilacrée;l’accèspard’autres
applicationspeutêtreimplantéparlacréationdefournisseursdecontenuoudeservices.
Labasededonnéeseststockéedans:/data/data/<package>/databases/<nombase>
Exemple:/data/data/pd.a14.base.bd/databases/GestionBD.db
Ilestpossibled’examinerunebasededonnéesenmodedecommandeendémarrantunshellsur
l’émulateur:adbshell;labasededonnéespeutensuiteêtreexaminéeaumoyendel’outil
sqlite3:sqlite3<chemincompletbase>.
Voiraussiladocumentation:http://developer.android.com/tools/help/adb.html#sqlite.
Leplug‐inSQLiteManagerpourFireFoxpermetdegérerunebaseSQLite.Pouremployercet
outil,vousdevezd’abordrecopierlefichiersousWindowsaumoyendelacommande:adbpull
<chemincompletbase><chemincompletwindows>.
Leplug‐inCellObjectSQLitepourEclipsepermetd’examinerlecontenud’unebasede
l’émulateur:
http://campus.hesge.ch/Daehne/Software/CellObjectSQLite/net.cellobject.sqlitexmlbrowser_1.2.0.zip
Remarque:aucunedecestroisstratégiesnepeutêtreappliquéeàuntéléphonequin’estpas
rooté(maisellepeuventbiensûrêtreappliquéesavecl’émulateur).
2.Illustration
OngèreunebasededonnéesdeprêtdeBDdontvoicilemodèlephysique:
Lacréationetlamiseàjourd’unebasededonnéessontgéréesparuneclassedérivéede
android.database.sqlite.SQLiteOpenHelper.
Ils’agitd’uneclasseabstraiteaveclaplupartdesesméthodesimplantéespourlaquelleilfaut
définirlesméthodesabstraites:
- onCreate():appeléeparlasystèmelorsquelabasen’existepas.
- onUpgrade():appeléeparlesystèmelorsquelaversiondelabaseachangé.
Oncréeuneinstancedecetteclasseetonappelle:
- getWritableDatabase():ouverturedelabaseenlecture/écriture.
- getReadableDatabase():ouverturedelabaseenlectureseule.
- close():fermeturedelabase.
Cesméthodesretournentuneinstancedelaclassequimodéliselabasededonnées:
- android.database.sqlite.SQLiteDatabase.