Bonjour,
En l'absence d'une base de données, quelle est la meilleure solution pour stocker des informations ? La sérialisation ? Si oui, quelles sont les limites de cette approche au niveau volume ?
Bonjour,
En l'absence d'une base de données, quelle est la meilleure solution pour stocker des informations ? La sérialisation ? Si oui, quelles sont les limites de cette approche au niveau volume ?
Développeur en devenir.
A la recherche de toute source approfondissant Merise, UML, Java, l'objet, les design patterns hors GOF et le développement en général.
Recherche également des informations sur les techniques de développement et les bonnes pratiques en terme de programmation en entreprise.
"On en apprends beaucoup plus par la confrontation que par la conciliation"
La sérialisation n'est pas un moyen de stockage, mais plutôt de "compression d'objets". Cela peut être utilisé pour le stockage, mais surtout pour la communication entre plusieurs applications, par exemple un client-serveur.
Si les données ne doivent pas être partagées par plusieurs postes, tu peux utiliser des Properties (format texte ou xml) ou alors te créer ton propre format de fichier XML.
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
La principale limite de la serialisation est qu'elle est peu adaptee pour un usage sur le long terme, ou dans le cadre d'une classe qui est souvent modifiee. En effet le mecanisme par defaut ne peut pas deserialiser la version anterieure d'une classe si cette derniere a ete modifiee depuis.
Si cela t'arrive, tu te trouveras donc dans l'impossibilite de restaurer tes anciennes sauvegardes.
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Heu... pas vraiment, heureusement. Que la sérialisation soit incapable de retrouver une ancienne version est une des légendes urbaines du monde java, si je puis me permettre.
En tous les cas, ici, il suffit de donner à la nouvelle version de classe le même serialVersionUID que l'ancienne, qui t'est donné en lisant le message d'erreur. Cela fonctionnera dans déjà 95% des cas. Quelques traficotages avec les APIs de sérialization te permettront de couvrir 4 autres % encore. Et, pour le reste, il est fort probable que le changement de version soit une création cachée d'une nouvelle classe.
Toutes ces manipulations et (in)compatibilités sont parfaitement documentées.
Et je ne suis pas sûr que les modes de sauvegardes supposés capables de tenir compte des changements de version se comportent aussi bien, et surtout aussi facilement.
Bon, cela dit, pour répondre à la question initiale, l'usage de la sérialisation est très pratique pour des transactions très simplifiées ; ex : je lis mes données au lancement de l'appli, et je les sauvegarde à la fin.
D'autres alternatives : la sérialisation à la mode XMLEncoder, JAXB/JAXP (ou comment faire compliqué quand on peut faire simple), les properties, les fichiers textes/binaires de toutes formes et de toutes confessions.
À noter que depuis java 6 il est exeptionnellement difficile de se retrouver en l'absence d'une base de données, comme tu dis. Comment as-tu fait, que t'est-il arrivé ?
Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.
Ce qui est bien sur totalement abordable pour un debutant qui se contente d'un cours qui lui a ete donne en classe (par exemple) ou on explique uniquement le mecanisme ecriture/lecture de base.
Et si tu en profitais pour etendre notre FAQ sur ce sujet ????
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Ah oui, si c'est un étudiant qui se contente de son cours...
Bon OK, je vais tenter de faire la question Corneguidouille ! J'ai fait une modif dans ma classe et la désérialization ne fonctionne plus que se passe-t-il ? LOL ? pour la FAQ.
Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager