SQLite Android Studio | Java
SQLite Android Studio | Java
Présentation
Aujourd'hui, nous allons voir comment faire une base de données de type SQLite sur Android Studio. Ça va vous permettre de garder des données sur le téléphone sans les perdre quand l’application est arrêtée. Nous allons utiliser une classe native d'Android Studio : SQLiteOpenHelper.
Prérequis
Avant de commencer, il nous faudra un peu d’organisation. Dans un premier temps, créez un paquet du nom SQLite, puis une classe du nom SQLite_[nom de la BDD]. Toujours dans le paquet, créez un autre dossier du nom ObjetData. Il contiendra les classes pour les objets data, elles représentent une ligne d’une requête spécifique.
Information
Si vous voulez tester votre base de données et créer les requêtes que vous allez utiliser plus facilement que sur Android Studio, il existe un logiciel très pratique et simple d’utilisation. Il vous faudra un dossier avec un fichier en .db. Comme SQLite utilise un fichier en .db qui est considéré comme une base de données, cela évite les grosses installations et permet de mieux visualiser pour ceux qui débutent en SQL.
Création de la base de données
package fr.the_library.testsqlite.SQLite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLite_RPGworld extends SQLiteOpenHelper {
// DataBase
private static final String DATABASE_NAME = "RPGworld.db";
private static final int DATABASE_VERSION = 1 ;
public SQLite_RPGworld(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Définition des colonnes et de la table :
public class SQLite_RPGworld extends SQLiteOpenHelper {
// DataBase
private static final String DATABASE_NAME = "RPGworld.db";
private static final int DATABASE_VERSION = 1 ;
// Table 1 : Personnages
private static final String TABLE_PERSONNAGES = "Personnages";
private static final String COLUMN_PERSONNAGES_ID = "Id"; // INT
private static final String COLUMN_PERSONNAGES_NOM = "Nom"; // TEXT
private static final String COLUMN_PERSONNAGES_PRENOM = "Prenom"; // TEXT
private static final String COLUMN_PERSONNAGES_PV = "Pv"; // INT
private static final String COLUMN_PERSONNAGES_MP = "Mp"; // INT
private static final String COLUMN_PERSONNAGES_TYPE = "Type"; // TEXT
// ...
}
Création de la table dans onCreate :
@Override
public void onCreate(SQLiteDatabase db) {
String strSQL = "create table " + TABLE_PERSONNAGES + " ("
+ COLUMN_PERSONNAGES_ID + " integer primary key autoincrement, "
+ COLUMN_PERSONNAGES_NOM + " text, "
+ COLUMN_PERSONNAGES_PRENOM + " text, "
+ COLUMN_PERSONNAGES_PV + " integer, "
+ COLUMN_PERSONNAGES_MP + " integer, "
+ COLUMN_PERSONNAGES_TYPE + " text"
+ ");";
db.execSQL(strSQL);
Log.i("DATABASE", "[" + DATABASE_NAME + "] onCreate invoked");
}
Mise à jour de la base de données dans onUpgrade :
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String strSQL = "drop table if exists " + TABLE_PERSONNAGES + ";";
db.execSQL(strSQL);
this.onCreate(db);
Log.i("DATABASE", "[" + DATABASE_NAME + "] onUpgrade invoked");
}