Export BDD SQLite en Java

Fermé
luludojava - 26 juin 2016 à 16:26
 luludojava - 26 juin 2016 à 18:42
Bien le bonjour,

Je viens à vous ce jour parce que je modifie un soft que j'ai fait il y a quelques mois, la modification en question est que je passe du SQL au SQLite et c'est la que se situe tout mon problème ! Ma question est plutôt simple en fait..

- Existe-t-il un moyen d'exporter une base de données SQLite vers un fichier CSV (ou autre) en Java?

Car je vous avoue que si je n'ai pas cette possibilité d'export, mon soft deviens totalement inutile! et ça m'embêterai vraiment d'avoir travaillé pour rien ^^

j'espère que vous pourrez me fournir une réponse, sur ce, je vous remercie par avance du temps que vous pourrez prendre pour me répondre..

P.S. : Veuillez m'excuser pour les diverses fautes d'orthographes et de grammaires/conjugaisons !


A voir également:

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juin 2016 à 17:19
Bonjour,

Pourquoi vouloir faire l'export en Java ?

SQLite permet nativement de faire un export CSV, c'est marqué dans la documentation (merci Google...)
https://www.sqlite.org/cli.html#section_9

Et plus généralement n'importe quelle base de données est capable de faire des dump pour sauvegarder toutes ses données, le résultat étant en SQL le passage des données d'une base à une autre se fait normalement très bien.
0
Pourquoi en JAVA? et bien parce que mon soft fonctionne en totale transparence pour l'utilisateur, je fait donc toutes mes requêtes SQLite dans mon programme JAVA, et donc je dois naturellement faire l'export de cette même manière afin de garantir la transparence de mon application.. j'espère être clair, n'hésite pas si tu veux des précisions :)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juin 2016 à 17:47
Non ce n'est toujours pas clair.

À quoi te servirait d'exporter toute ta base de données en CSV ?

Pour moi le seul intérêt c'est de récupérer tout ce qui peut déjà exister sur une première base de données, pour la migrer sur une seconde base de données, mais c'est le genre de chose que l'on ne fait que ponctuellement, pourquoi l'automatiser en Java ?
0
Hum...comment pourrais-je te l'expliquer.. bon, je vais t'expliquer le but de mon programme.

Suite à la connexion à un réseau WIFI, le soft Java s'occupe de récupérer le SSID ainsi que la clé de sécurité de ce réseau. ensuite on vient enregistrer ces données dans la base de données. et donc le but du soft c'est qu'en cas de problème (oubli du réseau inopiné, changement de PC ou autre ) l'utilisateur n'ai pas à redemander les clés wifi des endroit ou ils s'est connecté, ou même d'aller récupérer sa propre clé au dos de la box en se faisant suer à la recopier...j'aimerais donc pouvoir exporter la base en CSV, un fichier que l'utilisateur pourra consulter si il a besoin des info contenues dedans..

est-ce plus clair? :/
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juin 2016 à 18:05
Donc ce que tu veux ce n'est pas la recopie de toute la base de données, mais juste enregistrer le résultat d'une seule requête en CSV...

Mais je ne vois pas ce que ta migration SQL/SQLite vient faire là dedans !?

Outre le fait que SQLite permet de faire tout seul l'extraction en CSV comme je l'ai indiqué avec le lien plus haut, si tu tiens absolument le faire en Java, tu fais ta requête une boucle pour lire tout les résultats que tu enregistres dans un fichier...

Où est le problème ?
0
luludojava > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
26 juin 2016 à 18:12
j'ai déjà pensé à faire cela, mais je ne voulais pas faire des kilomètres de codes, la où je pensais que le SQLite pouvais le faire en une simple requête! pardonne moi si je n'ai pas été clair, ce que je souhaite est bien le contenu de ma base de données dans un fichier CSV.. et sois dit en passant, je n'ai jamais parlé de migration SQL/SQLite ^^
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juin 2016 à 18:35
la modification en question est que je passe du SQL au SQLite et c'est la que se situe tout mon problème !
sois dit en passant, je n'ai jamais parlé de migration SQL/SQLite
C'est quoi la différence ?

"je pensais que le SQLite pouvais le faire en une simple requête"
Oui, et je t'ai donné le lien plus haut, mais tu n'en veux pas car tu veux le faire en Java.

"mais je ne voulais pas faire des kilomètres de codes"
Donc on revient encore à la question, pourquoi le faire en Java ?
Sachant que c'est clairement exagéré, un export CSV je te le fais en 10 lignes...

public static void export(File output) throws SQLException, IOException {
    try (FileWriter fw = new FileWriter(output);
        Connection conn = DriverManager.getConnection("url", "usr", "pwd");
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("select a,b,c from t")) {
        while (rs.next()) {
            fw.append(rs.getString(1)).append(';'); // a
            fw.append(rs.getString(2)).append(';'); // b
            fw.append(rs.getString(3)).append('\n');// c
        }
    }
}
0
luludojava > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
26 juin 2016 à 18:42
euh...la je sais plus quoi dire, sur tout les sites que j'ai consulté concernant l'écriture d'un fichier CSV, ça ne se résumais pas à ça ..parce que ça oui je l'ai deja fait des dizaines de fois dans divers projets.. en tout cas merci de ton aide, je vais me rabattre la dessus !
0