4 votes

Utiliser XML comme base de données en Java

Je veux utiliser un fichier XML comme base de données. Où je veux stocker un ID et son chemin correspondant, comme:

     id
     chemin

ou comme ça. Maintenant, à l'exécution, une collection de noms-valeurs chargera ces données stockées dans le document XML, vérifiera l'ID par rapport à certaines données et sera traitée en conséquence. De plus, la mise à jour (c'est-à-dire le changement du chemin du même ID) et la suppression (suppression d'un élément existant) des éléments sont nécessaires dans ce fichier XML. J'espère vous avoir fait comprendre mon idée! Je n'ai pas de code à montrer car cela se situe au niveau conceptuel. Ce dont j'ai besoin, c'est de savoir comment je peux réaliser cela, s'il existe un tutoriel que je peux lire ou une API disponible capable de le faire? Merci. Je suis en JAVA.

6voto

Costis Aivalis Points 8935

D'autre part, vous êtes plus proche de XML si vous utilisez des systèmes de bases de données XML, qui offrent des APIs de base de données XML. Comme Exist ou Apache Xindice.

4voto

Jon Skeet Points 692016

Je vais supposer que c'est en fait une bonne idée pour votre application - c'est une toute autre discussion.

Je traiterais ceci comme trois problèmes distincts :

  • Chargement du fichier XML à partir du disque et stockage dans une structure de données appropriée (comme une Map)
  • Manipulation de la collection de manière appropriée (récupération, ajout ou suppression d'entrées)
  • Enregistrement du fichier XML de nouveau sur le disque

La plupart de votre code devrait probablement ne pas savoir que votre collection sera stockée en XML.

Il existe diverses API XML disponibles pour Java - celles intégrées ont tendance à être assez pénibles à utiliser. Je ne sais pas quelles sont les dernières et les meilleures, mais historiquement JDOM s'est révélé assez simple.

Notez que le choix de votre collection en mémoire dépendra de vos besoins - l'ordre est-il important, par exemple ?

3voto

Cela va rapidement devenir difficile à gérer car vous devrez réécrire l'intégralité du fichier XML à chaque fois que vous modifiez les données. Imaginez simplement si vous avez 100 000 entrées et pensez au travail que vous aurez à faire en utilisant cette base de données.

En revanche, en tant qu'une forme sérialisée d'une hashmap en mémoire, c'est une autre histoire, car les recherches dans une HashMap sont très rapides. Cependant, la manière la plus simple et la plus rapide de sérialiser une hashmap est d'utiliser le XMLSerializer intégré dans les bibliothèques standard.

1voto

LottaLava Points 529

BaseX est une base de données XML, semble répondre à ce que vous voulez faire!

http://basex.org/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X