Persistance d'objet dans un fichier

Présentation de la librairie JOAFIP pour persister des objets dans un fichier.
Répond au problèmes de gestion d'un grand volume d'objets sans avoir recours à une base de données.
Montre comment une gestion de persistance peut être transparente au niveau du code.

le site de la librairie JOAFIP

Le mécanisme de persistance en fichier est transparente, les objets sont tout d'abord créés en mémoire, ensuite la sauvegarde de l'objet racine est demandé, les objets ainsi créés doivent être déréférencés. Pour ensuite modifier ce qui a été sauvegardé il suffit de demander l'objet racine, de naviguer d'objet en objet via les méthodes ( getter entre autre ) et une fois les modifications faites de demander la sauvegarde.

Les quatres opérations de base (CRUD) sont assurées.

De quoi avoir les propriété ACID est aussi disponible.

Exemple d'utilisation:

PLinkedTreeMap<String,Personne> mapDePersonne=new PLinkedTreeMap<String,Personne>();
Personne jean=new Personne(......);
.....
mapDePersonne.put("Jean",jean);
/* start data access session */
DataAccessSession session = filePersistence.createDataAccessSession();
session.open();
session.setObject("personneTable",mapDePersonne);
session.closeAndWait(EnumFilePersistenceCloseAction.SAVE);

Ensuite pour accéder aux données sauvegardées:

session.open();
mapDePersonne=session.getObject("personneTable");
Personne personne=mapDePersonne.get("Jean");
Personne alfred=new Personne(....);
mapDePersonne.put("Alfred",alfred);
session.closeAndWait(EnumFilePersistenceCloseAction.SAVE);

C'est aussi simple que cela.

A chaque fois que le getObject est fait la map n'est pas chargé en mémoire, ce qui veut dire que vous pouvez créer une map plus grande que ce que peut contenir la mémoire.

Plus de détails

Une petite animation pour aider à comprendre le mécanisme.

Ce document intitulé « Persistance d'objet dans un fichier » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous