J'ai un grand arbre d'objets Java dans mon application de bureau et j'essaie de décider de la meilleure façon de les conserver en tant que fichier dans le système de fichiers.Quel est le meilleur moyen de conserver les données dans une application Java Desktop?
Quelques réflexions que j'ai eu étaient:
rouleau mon sérialiseur en utilisant DataOutputStream: Cela me donnerait le plus grand contrôle de ce qui était dans le dossier, mais au prix de microgestion il.
Straight old Sérialisation avec ObjectOutputStream et ses différentes classes associées: Je ne suis pas vendu car je trouve les données cassantes. La modification de la structure d'un objet casse les instances sérialisées de celui-ci. Donc, je suis enfermé dans ce qui semble être un cauchemar horrible versioning.
Sérialisation XML: Ce n'est pas aussi fragile, mais il est nettement plus lent que la sérialisation. Cela peut être transformé en dehors de mon programme.
JavaDB: Je l'ai considéré puisque je suis à l'aise pour écrire des applications JDBC. La différence ici est que l'instance de base de données ne persisterait que pendant l'ouverture ou l'enregistrement du fichier. Ce n'est pas joli mais ... il se prête bien à la migration vers une architecture de serveur centrale si le besoin s'en fait sentir plus tard et il introduit la possibilité de modifier le modèle de données d'une manière plus simple.
Je suis curieux de voir ce que les autres pensent. Et j'espère avoir manqué une approche évidente et plus simple que celles ci-dessus.
Voici quelques plus d'options puisés dans les réponses ci-dessous:
- une base de données objet - a considérablement moins d'infrastructures que ORM approches et exécute plus rapidement qu'une approche XML. merci aku