Persistance des données
avec LocalStorage
Niveau : intermédiaire
Objectifs : stocker des informations localement dans une base de données relationnelle
Prérequis : Premiers pas avec Qt Quick, Présentation de JavaScript, Utiliser la
méthodologie modèle - vue
L'application BiblioApp développée jusqu'ici répond au cahier des charges minimal :
il est possible de créer des livres, visualiser l'état actuel de la bibliothèque et en
modifier le contenu. Par contre, dès la fermeture du programme, toutes ces informations
sont perdues. Pour résoudre ce problème, il est nécessaire de développer une couche
de persistance des données.
Le stockage de données informatiques ne peut pas se faire de trente-six manières : en
bonne approximation, le monde se divise entre le stockage dans des fichiers (soit en
texte, c'est-à-dire lisibles avec un simple éditeur de texte, soit en binaire) et dans des
bases de données (le plus souvent relationnelles [21] ).
Côté Qt Quick, seules les bases de données relationnelles sont directement accessibles,
à l'aide de l'API LocalStorage. Cette dernière est très fortement inspirée de l'API Web
SQL Database définie pour HTML5, qui permet de stocker des données sous cette
forme dans un navigateur web. Côté implémentation, ce module donne accès à une base
de données SQLite, accessible depuis l'extérieur de l'application Qt Quick au besoin.
Note > Cette API est assez légère, elle ne permet notamment pas d'exploiter toute la
flexibilité du module Qt SQL. Elle se révèle cependant largement suffisante pour
bien des cas d'utilisation. Pour aller plus loin dans le stockage des données, il est
nécessaire de recourir à des extensions en Python (Chapitre Communiquer avec
Python).
353
avec LocalStorage
Niveau : intermédiaire
Objectifs : stocker des informations localement dans une base de données relationnelle
Prérequis : Premiers pas avec Qt Quick, Présentation de JavaScript, Utiliser la
méthodologie modèle - vue
L'application BiblioApp développée jusqu'ici répond au cahier des charges minimal :
il est possible de créer des livres, visualiser l'état actuel de la bibliothèque et en
modifier le contenu. Par contre, dès la fermeture du programme, toutes ces informations
sont perdues. Pour résoudre ce problème, il est nécessaire de développer une couche
de persistance des données.
Le stockage de données informatiques ne peut pas se faire de trente-six manières : en
bonne approximation, le monde se divise entre le stockage dans des fichiers (soit en
texte, c'est-à-dire lisibles avec un simple éditeur de texte, soit en binaire) et dans des
bases de données (le plus souvent relationnelles [21] ).
Côté Qt Quick, seules les bases de données relationnelles sont directement accessibles,
à l'aide de l'API LocalStorage. Cette dernière est très fortement inspirée de l'API Web
SQL Database définie pour HTML5, qui permet de stocker des données sous cette
forme dans un navigateur web. Côté implémentation, ce module donne accès à une base
de données SQLite, accessible depuis l'extérieur de l'application Qt Quick au besoin.
Note > Cette API est assez légère, elle ne permet notamment pas d'exploiter toute la
flexibilité du module Qt SQL. Elle se révèle cependant largement suffisante pour
bien des cas d'utilisation. Pour aller plus loin dans le stockage des données, il est
nécessaire de recourir à des extensions en Python (Chapitre Communiquer avec
Python).
353
