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

JDBC Java Discussion :

SQLDump et Java


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut SQLDump et Java
    Bonjour.

    Je développe en ce moment une application avec une base de données mysql.
    Je cherche à faire la sauvegarde de ma base de donnée MYSQL à l'aide de mySQLDump.
    J'ai développé le fonction suivante mais quand je la lance rien ne se passe. J'ai vérifié et revérifié le chemins d'accès de mysqldump et la syntaxe mais je ne trouve pas mon erreur .
    Est-ce que quelqu'un peut m'aider ?

    Merci

    CODE :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public class SQLDump 
    {
        public JFileChooser dialogPath;
     
        public void saveDB()
        {
     
            try{
     
                Process p = Runtime.getRuntime().exec("\"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe\" -u root -psimon1 listecd > c:\\listecd.sql");
     
                System.out.println("\"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe\" -u root -psimon1 listecd > c:\\listecd.sql");
                }
                catch(Exception e)
                {
                    System.out.println("dump = " + e);
                }
            }
     
        private class MonFiltreAToi extends FileFilter {
            public boolean accept(File f) {
                boolean accepte = false;
                if (f.isDirectory())
                    accepte = true;
                if (f.getName().endsWith("sql") || f.getName().endsWith("SQL"))
                    accepte = true;
                if(f.getName().endsWith("lnk"))
                    accepte = false;
                return accepte;
            }
     
            public String getDescription() {
                return "Fichiers SQL";
            }
     
        }
     
    }

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Tu devrais trouver avec un peu de recherche sur ce forum plein d'infos sur Runtime.exec(..) ... En l'occurence, tu ne peux comme ça rediriger la sortie vers un fichier ... A toi de rediriger la sortie en Java ...

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    J'ai réussi à modifier mon code en mettant le temps (je viens de finir mes partiels) et la redirection pour creer mo, fichier .sql marche. Maintenant, j'ai un autre soucis, le fichier sauvegardant mes bases de données créé par mon programme n'est pas le même que celui que je créé en ligne de commande.
    Bien sur quand j'essaye de restaurer mes bases de données à l'aide du fichier créé par mon programme en java, ca ne marche pas SQL trouve une erreur de syntaxe.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public void saveDB()
        {
            dialogPath = new JFileChooser();
            dialogPath.showSaveDialog(null);
            String fileURL = dialogPath.getSelectedFile().getPath();
            sauvegardePass passRead = new sauvegardePass();
            String pass = passRead.lireFichier();
            try{
     
                Process p = Runtime.getRuntime().exec("\"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe\" -u root -p"+ pass + " listecd");
     
                File sqlDump = new File(fileURL);
                FileWriter fw=null;
                try 
                {
                    fw = new FileWriter(sqlDump);
                }
                catch (IOException ex) 
                {
                } 
                InputStream in = p.getInputStream();
                InputStreamReader xx = new InputStreamReader(in,"utf8");
                char[] chars=new char[1024];
                int ibyte=0;
                while((ibyte=xx.read(chars))>0)
                {
                fw.write(chars);
                }
                fw.close(); 
     
     
                }
     
                catch(Exception e)
                {
                    System.out.println("dump = " + e);
                }
            }
    Je n'ai pas développé la fonction qui me permet de restaurer mes bases à partir du fichier .sql créé par mon prog. Pour tester le fichier, j'utilise la lligne de commande winwin.

    Est-ce que j'ai une erreur dans mon code de sauvegarde ?

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Quand tu regardes le fichier et que tu le compares avec un fichier mysqldump fait à la main, c'est quoi la différence ? C'est pas un problème d'encoding ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Par défaut
    tu pourrais mettre deux trois commentaire sur ton code ya des chose que je ne comprend pas et en ce moment j'essai de faire la même chose que toi

    merci d'avance

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    En fait quand je lance la création du fichier, elle se passe bien. C'est ensuite quand je compare le contenu des deux fichiers (celui créé en ligne de commande et celui créé avec mon logiciel) qu'il y a des différences. C'est différence se traduise par des ajouts de caractères.
    J'ai utilisé l'encodage utf8 pour la création de ma fonction.
    Si tu veux, je peux t'envoyer les fichiers par mp pour que tu puisses comparés. En plus, il y a une différence de taille asez importante, l'un fait 4Ko et l'autre 7Ko.

    Je suis à bout, j'ai essayé beaucoup de chose mais la je ne vois plus.

    piqpen, dès que j'arrive à bien gérer mon truc je te tiens au courant.

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 11h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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