100
15 novembre 2017

Bases de données Android – Realm

base de donnees pour android

Realm c’est quoi ?

Realm est une alternative à SQLite pour la création de bases de données Android.  Realm Database est beaucoup plus rapide qu’un ORM (object-relational mapping) et plus rapide que SQLite. Chez hmwk. nous utilisons Realm dans la plupart de nos projets.

Nous allons voir rapidement comment intégrer et utiliser Realm dans un projet sous Android Studio.

Mise en place

Ajoutez la dépendance suivante au fichier build.gradle

1
classpath "io.realm:realm-gradle-plugin:3.1.4"

Ensuite, ajoutez le plugin realm-android à votre projet

1
2
apply plugin: 'com.android.application'
apply plugin: 'realm-android'

Nous pouvons maintenant l’utiliser dans notre application.
Commencez par créer une classe qui hérite de Application, puis initialisez Realm.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MyApplication extends Application {

@Override
public void onCreate() {
super.onCreate();

Realm.init(this);

RealmConfiguration configuration = new RealmConfiguration.Builder()
.schemaVersion(1)
.name(getResources().getString(R.string.app_name)+".realm")
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(configuration);
}
}
1
2
3
4
5
6
android:name="family.hmwk.packagename.MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"

Maintenant que la librairie est initialisée, on peut commencer à créer nos tables.
Rien de plus simple, il vous suffit d’hériter vos objects de RealmObject
#Create table

1
2
3
4
5
6
7
8
9
10
11
public class Marques extends RealmObject {

@PrimaryKey
public int id;
public String date;
public String modified;
public String slug;
public String status;
public String type;
public String link;
public String title;

Il ne nous reste plus qu’à ajouter des données dans nos tables
#Insert

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public Realm mRealmInstance;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRealmInstance = Realm.getDefaultInstance();
}

@Override
public void onDestroy() {
super.onDestroy();
if (mRealmInstance != null) {
mRealmInstance.close();
}
}

private void addMarques() {
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();

Marques mMarques = new Marques();
mMarques.setTitle("Picture Organic Clothing");
//....

try {
realm.copyToRealmOrUpdate(mMarques);
realm.commitTransaction();
} catch (Exception e) {
} finally {
realm.close();
}
}

Enfin, nous pouvons récupérer les données de notre table
#Select

1
2
3
4
5
private ArrayList getMarques() {
RealmQuery query = mRealmInstance.where(Marques.class);
ArrayList marquesList = new ArrayList(query.findAll());
return marquesList;
}

Et voilà, c’est tout pour les bases de données Android avec Realm !

Ce tutoriel est loin d’être exhaustif. Pour plus de détails, je vous conseille d’aller lire la doc en ligne de Realm qui est très pratique.

VOUS EN VOULEZ ENCORE ?

CHANGER D'UNIVERS !