Académique Documents
Professionnel Documents
Culture Documents
Cet article a pour objectif de vous apprendre à utiliser SQLite sous Android. C'est toujours
utile de pouvoir stocker quelques données dans une application. Les tables que l'on créé
avec SQLite doivent bien entendu être simples, tout comme les requêtes que vous ferez
dessus. Rappelez-vous que l'on n'est pas sur des méga serveurs ultra puissants, mais
simplement sur un mobile.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
I - Introduction..............................................................................................................................................................3
II - Code Java.............................................................................................................................................................. 3
III - Remerciements..................................................................................................................................................... 9
IV - Lien....................................................................................................................................................................... 9
-2-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
I - Introduction
Pour notre exemple, nous allons créer une mini base de données pour enregistrer des livres. Durant ce tutoriel, nous
utiliserons les classes suivantes :
• SQLiteOpenHelper qui est une classe d'assistance pour gérer la création de bases de données et la gestion
des versions.
• ContentValue, cette classe est utilisée pour stocker un ensemble de valeurs que le ContentResolver peut
traiter.
• Cursor est une interface qui donne accès en lecture-écriture à l'ensemble des résultats retournés par une
requête de base de données.
On va donc commencer doucement avec la création de la classe Livre (très simple pour notre exemple). D'ailleurs,
dernière petite précision, dans ce tutoriel on ne va pas faire d'interface graphique, on va juste afficher les résultats
de nos requêtes dans des Toast.
II - Code Java
Après avoir créé un nouveau projet (perso moi je suis toujours avec Android 1.6), on va tout de suite concevoir une
nouvelle classe que l'on va appeler Livre. Cette classe est très simple puisque dans notre cas, un livre est défini
par un ID, un numéro ISBN et un titre. On crée le constructeur ainsi que les getter et les setter et le tour est joué.
Voici le code :
package com.tutomobile.android.sqlite;
/**
* Création d'un livre tout simple pour un exemple d'utilisation de SQLite sous Android
* @author Axon
* http://www.tutomobile.fr
*/
public class Livre {
public Livre(){}
-3-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
Maintenant nous allons faire une nouvelle classe que j'ai appelée MaBaseSQLite et qui hérite de SQLiteOpenHelper.
Cette classe va nous permettre de définir la table qui sera produite lors de l'instanciation de celle-ci. Le code est très
simple vous allez voir, et je l'ai commenté :
package com.tutomobile.android.sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
private static final String CREATE_BDD = "CREATE TABLE " + TABLE_LIVRES + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_ISBN + " TEXT NOT NULL, "
+ COL_TITRE + " TEXT NOT NULL);";
@Override
public void onCreate(SQLiteDatabase db) {
//on crée la table à partir de la requête écrite dans la variable CREATE_BDD
db.execSQL(CREATE_BDD);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//On peut faire ce qu'on veut ici moi j'ai décidé de supprimer la table et de la recréer
//comme ça lorsque je change la version les id repartent de 0
db.execSQL("DROP TABLE " + TABLE_LIVRES + ";");
onCreate(db);
}
Ensuite nous allons créer une nouvelle classe (rassurez-vous, c'est la dernière) que j'ai appelée LivresBDD. Elle va
nous permettre de gérer l'insertion, la suppression, la modification de livres dans la BDD (Base De Données) ainsi
que de faire des requêtes pour récupérer un livre contenu dans la base de données. Comme d'habitude je vous
donne le code commenté, j'espère que cela suffira pour comprendre :
package com.tutomobile.android.sqlite;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
-4-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
-5-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
Bon allez encore un petit d'effort, on tient le bon bout, il ne reste plus qu'à faire le petit bout de code de test. Je ne
suis même pas obligé de vous le donner, car si vous avez bien compris ce qu'on a fait avant vous pourrez le faire les
doigts dans le nez. Mais bon si vous n'avez pas compris ce qu'on a fait avant, c'est peut-être que j'ai mal expliqué
donc je vais vous donner le code pour tester notre programme. Celui-ci est à mettre dans l'Activity qui se créer par
défaut lorsque vous faites votre nouveau projet Android :
package com.tutomobile.android.sqlite;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
//Pour vérifier que l'on a bien créé notre livre dans la BDD
//on extrait le livre de la BDD grâce au titre du livre que l'on a créé précédemment
Livre livreFromBdd = livreBdd.getLivreWithTitre(livre.getTitre());
//Si un livre est retourné (donc si le livre à bien été ajouté à la BDD)
if(livreFromBdd != null){
//On affiche les infos du livre dans un Toast
Toast.makeText(this, livreFromBdd.toString(), Toast.LENGTH_LONG).show();
//On modifie le titre du livre
livreFromBdd.setTitre("J'ai modifié le titre du livre");
//Puis on met à jour la BDD
livreBdd.updateLivre(livreFromBdd.getId(), livreFromBdd);
}
//On affiche les nouvelles inforoamtions du livre pour vérifier que le titre du livre a bien été mis à jour
Toast.makeText(this, livreFromBdd.toString(), Toast.LENGTH_LONG).show();
//on supprime le livre de la BDD grâce à son ID
livreBdd.removeLivreWithID(livreFromBdd.getId());
}
-6-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
//On essaye d'extraire de nouveau le livre de la BDD toujours grâce à son nouveau titre
livreFromBdd = livreBdd.getLivreWithTitre("J'ai modifié le titre du livre");
//Si aucun livre n'est retourné
if(livreFromBdd == null){
//On affiche un message indiquant que le livre n'existe pas dans la BDD
Toast.makeText(this, "Ce livre n'existe pas dans la BDD", Toast.LENGTH_LONG).show();
}
//Si le livre existe (mais normalement il ne devrait pas)
else{
//on affiche un message indiquant que le livre existe dans la BDD
Toast.makeText(this, "Ce livre existe dans la BDD", Toast.LENGTH_LONG).show();
}
livreBdd.close();
}
}
Si vous lancez votre application, vous devriez voir apparaître successivement les écrans suivants :
Android SQLite
-7-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
Android SQLite
Android SQLite
-8-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Comment utiliser SQLite sous Android par Axon de Tuto Mobile (Tuto Mobile)
Voilà ! On en a enfin fini avec ce tutoriel sur SQLite ! Alors c'est si terrible que ça? Si vous n'avez pas compris
quelques choses, n'hésitez pas à poser vos questions dans un commentaire (enfin regardez bien d'abord si vous
avez tout fait ;) ). Pour nous aider et nous remercier, se serait gentil de partager ce tutoriel sur Twitter et FaceBook.
III - Remerciements
Je tiens à remercier tout particulièrement MrDuchnok qui a mis ce tutoriel au format Developpez.com.
Merci également à Mahefasoa d'avoir pris le temps de le relire et de le corriger.
IV - Lien
-9-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de
ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 - Axon de Tuto Mobile. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.