You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Le QueryBuilder a pour but de construire des requêtes SQL sans faire du SQL (ou presque). Il permet de chaîner les appels de méthodes afin de rendre plus lisible la requête :
Pas besoin de s'étaler sur cette fonctionnalité qui n'est pas spécifique à Android. [La documentation](http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_3.html#SEC32) est d'ailleurs très complète à ce sujet.
229
229
230
-
# L'intégration à Android
230
+
##L'intégration à Android
231
231
232
-
## Création et mise à jour de schémas
232
+
###Création et mise à jour de schémas
233
233
234
234
ORMLite fournit un **OrmLiteSqliteOpenHelper** qui étend le SQLiteOpenHelper d'Android et qui permet de créer automatiquement le schéma SQLite et de le mettre à jour. Cette classe surcharge les onCreate et onUpgrade pour les besoins de SQLite. D'autres outils sont disponibles comme **TableUtils** qui permet de créer, vider et supprimer des tables.
235
235
236
-
## Accès aux DAO dans les activités
236
+
###Accès aux DAO dans les activités
237
237
238
238
ORMLite fournit une classe qui surcharge Activity pour fournir à nos activités un accès direct à la couche de persistence : **OrmLiteBaseActivity**.
239
239
Pour faire court, elle fournit un Helper qui nous permet de récupérer le OrmLiteSqliteOpenHelper du chapitre précédent. Ce helper est géré par la classe OpenHelperManager qui permet de gérer le cycle de vie du helper afin qu'une seule instance soit présente au sein de l'application.
240
240
241
241
{% highlight java %}
242
242
// MyOrmLiteSqliteOpenHelper is our implementation of OrmLiteSqliteOpenHelper
243
243
public class LoginActivity extends OrmLiteBaseActivity<MyOrmLiteSqliteOpenHelper> {
244
-
245
-
public void onCreate(Bundle savedInstanceState) {
246
-
int userId = 42;
247
-
User user = ((UserDao) getHelper().getDao(User.class)).queryForId((int) userId);
248
-
}
244
+
245
+
public void onCreate(Bundle savedInstanceState) {
246
+
int userId = 42;
247
+
User user = ((UserDao) getHelper().getDao(User.class)).queryForId((int) userId);
Par contre, il faudra bien prendre soin de libérer le helper afin de fermer la connection à la bdd (OpenHelperManager.release()).
259
259
260
260
261
-
# Performances
261
+
##Performances
262
262
263
-
## Les trucs à savoir
263
+
###Les trucs à savoir
264
264
265
265
- Il peut y avoir un temps de chargement très long des DAO au démarrage de l'application. Afin de contrer ça, ORMLite fournit un utilitaire permettant de générer un fichier plat de description de votre schéma qui sera ensuite utilisé au démarrage de l'application pour charger les DAO au lieu d'utiliser la réflexion qui est extrêment coûteuse sur Android. Le fichier généré s'appelle ormlite_config.txt et sera stocké dans le répertoire res/raw/. Il faudra ensuite le référencer dans votre classe OrmLiteSqliteOpenHelper (pour de plus amples informations, voir [la doc d'ORMLite](http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_4.html#SEC41)).
266
266
@@ -272,7 +272,7 @@ Par contre, il faudra bien prendre soin de libérer le helper afin de fermer la
272
272
273
273
Ceci permettra d'éviter à ORMLite la recherche de cette classe par réflexion (encore une fois).
274
274
275
-
## Benchmarks
275
+
###Benchmarks
276
276
277
277
J'ai testé l'insertion de 1000 objets simples avec et sans transaction :
278
278
@@ -288,12 +288,12 @@ Reste à comparer avec du Android natif :
288
288
289
289
Ces chiffres donnent juste un ordre d'idée car il faudrait beaucoup plus de tests pour avoir un benchmark plus précis, mais ils me confortent dans l'idée qu'ORMLite ne pénalise mon application en terme de performances.
290
290
291
-
## Le ressenti utilisateur
291
+
###Le ressenti utilisateur
292
292
293
293
Comme écrit dans le chapitre précédent, je ne ressens aucune différence notable en terme d'utilisation de l'application.
294
294
295
295
296
-
# Conclusion
296
+
##Conclusion
297
297
298
298
ORMLite est donc un outil assez complet et assez léger (310 Ko) pour nos applications Android. Il nous permet d'écrire un code plus propre, plus lisible et plus léger. Il nous rapproche aussi de l'architecture utilisée dans nos développements Java côté serveur.
0 commit comments