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 mecanisme, plus de détails .