Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je stocker une grande quantité de données d'une base de données vers XML (problème de mémoire) ?

Pourquoi ne pas écrire toutes les données dans un seul fichier et ouvrir le fichier avec l'option "ajouter" ? Il n'est pas nécessaire de lire toutes les données du fichier si vous allez simplement y écrire.

Cependant, cela pourrait être une meilleure solution :

PrintWriter writer = new PrintWriter(new BufferedOutputStream(new FileOutputStream("data.xml")));

while(rs.next()){
    i++;
    writer.print("\n\t<row>");
    writer.print("\n\t\t<ID>" + Util.transformToHTML(rs.getInt("id")) + "</ID>");
    writer.print("\n\t\t<JED_ID>" + Util.transformToHTML(rs.getInt("jed_id")) + "</JED_ID>");
    writer.print("\n\t\t<IME_PJ>" + Util.transformToHTML(rs.getString("ime_pj")) + "</IME_PJ>");
    //...

    writer.print("\n\t</row>");
}

writer.close();

Le BufferedOutputStream mettra les données en mémoire tampon avant de les imprimer, et vous pouvez spécifier la taille de la mémoire tampon dans le constructeur si la valeur par défaut ne répond pas à vos besoins. Voir l'API Java pour plus de détails :http://java.sun.com/javase /6/docs/api/ .