IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Export d'une requête SQL en Java


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Export d'une requête SQL en Java
    Bonjour,

    je travaille sous Ubuntu 11.10 , et je veux développer une page web qui permet d'exporter une requête SQL (pas une base de donné) dans un fichier .sql , j'ai recherché sur Internet sur une commande linux qui permet de faire l'export et j'ai trouvé celle ci :

    mysqldump -r /home/user/Desktop/export.sql --databases world --tables City --where='ID = 1'
    j'ai trouvé aussi que Java peut éxecuter une commande linux ou MsDos en utilisant la fonction exec() de 'Runtime '.

    en assemblant les deux parties j'ai arrivé à ce code décrit ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class TestExport {
     
    public static void main(String[] args) {
    try {
    Runtime.getRuntime().exec("mysqldump -r /home/user/Desktop/export.sql --databases world --tables City --where='ID = 1'");
    Runtime.getRuntime().exec("chmod -R 777 /home/user/Desktop/export.sql");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    le problème est que ce code java me génére un fichier 'export.sql' comportant juste des commentaire de mysqldump et pas des requêtes sql (create,insert) , tandis que si j'execute la commande linux décrit pécédemment dans la fenêtre de console , l'export marche très bien.

    SVP,est-ce que quelqu'un peut m'aider à résoudre ce problème ?

    Juste pour info la base de donnée que j'utilise s'appelle 'world' et le table qui subit la requête est 'City'

  2. #2
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    Bonjour,
    Tu as peut être un problème de variable d’environnement.

    Tu as aucune erreur avec les lignes générer en passant pas Java ? Dans les logs mysql ?
    Sébastien

  3. #3
    Membre averti Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 413
    Points
    413
    Par défaut
    Bonjour,

    Ajoute les paramètres --user et --password
    Les boutons et adorent être cliqués, donc ne les oubliez pas

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    j'ai ajouté les paramètres --user et --password comme ça :

    mysqldump --user root --password -r /home/user/Desktop/export.sql --databases world --tables City --where='ID = 1'
    mais sans succès (le fichier export.sql contient toujours les commentaires de mysqldump)

    pour ce qui conçerne les lignes générées en passant par Java apparemment il n'y a une message d'erreur

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    J'ai une idée....

    Je suis pas sur mais bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    	try
    	{
     
    	    Process p = Runtime.getRuntime().exec(
    		    "mysqldump -r /home/user/Desktop/export.sql --databases world --tables City --where='ID = 1'");
    	    p.wait();
    	    Runtime.getRuntime().exec("chmod -R 777 /home/user/Desktop/export.sql");
    	}
    	catch (IOException e)
    	{
    	    // TODO Auto-generated catch block
    	    e.printStackTrace();
    	}
    	catch (InterruptedException e)
    	{
    	    // TODO Auto-generated catch block
    	    e.printStackTrace();
    	}
    Sébastien

Discussions similaires

  1. [AC-2010] Exportation d'une requête SQL avec mise en forme
    Par Daejung dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/12/2011, 14h03
  2. Problème d'exécution d'une requête sql sous java
    Par leshafid dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/08/2010, 09h15
  3. Problème d'exécution d'une requête sql sous java
    Par leshafid dans le forum JDBC
    Réponses: 1
    Dernier message: 18/08/2010, 08h26
  4. Réponses: 26
    Dernier message: 17/07/2008, 14h17
  5. Réponses: 8
    Dernier message: 11/08/2006, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo