2009-12-11 5 views
3

connexion à une base de données mysql depuis java en utilisant jdbc. déclarant une requêtejava - mysql - sélectionnez le fichier de sortie - où le fichier est sauvegardé

String query = 
        "SELECT *"+ 
        "FROM tt2"+ 
        "INTO OUTFILE 'DataFormatted.csv'"+ 
        "FIELDS TERMINATED BY ','"+ 
        "ENCLOSED BY '\"'" + 
        "LINES TERMINATED BY '\n'"; 

exécutant la requête en utilisant executQuery (requête).

comment changer le code ci-dessus pour enregistrer DataFormatted.csv dans c lecteur répertoire racine

+0

Je pense que cette requête ne fonctionnera pas du tout: séparateur (espace) manquant entre les lignes. La requête concaténée est '' SELECT * FROM tt2INTO OUTFILE 'DataFormatted.csv'FIELDS TERMINÉ PAR', 'ENCLOS PAR' \ '' LIGNES TERMINÉES PAR '\ n' "' –

+0

vous avez raison .. je mets enfin les espaces – silverkid

Répondre

4

où est le fichier se sauvegardé.

Dans le répertoire de travail actuel du serveur MySQL. Lequel dépend de la façon dont le serveur MySQL est exécuté et configuré. Le mieux est de changer l'emplacement du fichier CSV à un emplacement fixe.

comment changer le code ci-dessus pour enregistrer DataFormatted.csv dans c lecteur répertoire racine

Il suffit de changer 'DataFormatted.csv' par 'C:/DataFormatted.csv'. Sachez que le code Java et le serveur MySQL doivent fonctionner physiquement sur la même machine si vous souhaitez également accéder au fichier CSV par Java. Si elles s'exécutent sur des machines physiquement différentes, vous devrez probablement rechercher d'autres moyens d'accéder au fichier CSV, par exemple. FTP'ing le fichier CSV généré.

+0

I pense que le répertoire de travail est faux ... au moins, il ne peut pas être le répertoire de travail du processus Java (à moins qu'il y ait un moyen d'exécuter MYSQL dans Java) –

+0

Hmm, point valide, je vais éditer la réponse. – BalusC

0
SELECT ... INTO OUTFILE 

décharges les données dans un fichier sur la machine du serveur MySQL. Si vous voulez créer un fichier local sur le client Java, vous devrez le créer vous-même.

2

En supposant que votre requête SQL est correcte (votre exemple contient des espaces au saut de ligne), OUTFILE enregistre le fichier sur le serveur.
Si aucun chemin n'est donné, il ira dans le répertoire de données, dans un sous-répertoire avec le nom de l'utilisateur.
C'est quelque chose comme C:\Program Files\MySQLServer\data\test pour l'utilisateur test.

Pour connaître le répertoire de données, utilisez la requête show variables where variable_name = 'datadir'.

Pour modifier l'emplacement de OUTFILE, utilisez simplement le chemin complet, comme suggéré par BalusC.

Questions connexes