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 :

connection à distance sur BD mysql avec java


Sujet :

JDBC Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 40
    Par défaut connection à distance sur BD mysql avec java
    Bonjour,

    J'ai une base de donnée mysql chez un hebergeur gratuit (multimania). Je souhaite y acceder (la remplir, la consulter ...) via un programme java qui tourne depuis mon ordinateur perso.
    Comment dois-je m'y prendre pour établir la connection à distance ?

    quand je fais : con=DriverManager.getConnection("url","pseudo","password");
    que dois-je mettre comme URL ?
    Est-ce que c'est la bonne méthode ?

    merci beaucoup pour vos conseils
    julien

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    C'est bien comme ça que tu dois faire. Pour l'url, tu dois mettre l'adresse ip du serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String bdd = "nom_de_la_base_de_donnée";
    String url = "jdbc:mysql://adresse_ip/" + bdd;

  3. #3
    Membre émérite

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Par défaut
    petite précision : il peut etre avantageux de remanier sa méthode de connection afin d'y inclure un fichier properties... ainsi le jour ou tu voudras changer de base de données ou de driver ou d'hévergeur il te suffira de changer les String de ton fichier properties

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    /**
         * Nom du champ de la classe du Driver dans le fichier de properties.
         */
        private static final String JDBC_DRIVER_PROPERTY = "database.driver.classname";
     
        /**
         * Nom du champ de l'URL de la base de donnée dans le fichier de properties.
         */
        private static final String JDBC_URL_PROPERTY = "database.driver.url";
     
        /**
         * Nom du champ de l'utilisateur de la base de donnée dans le fichier de properties.
         */
        private static final String JDBC_USER_PROPERTY = "database.user";
     
        /**
         * Nom du champ du mot de passe de la base de donnée dans le fichier de properties.
         */
        private static final String JDBC_PASSWORD_PROPERTY = "database.password";
     
        /**
         *Nom du champ de l'URL du serveur de base de donnée dans le fichier de properties.
         */
        private static final String JDBC_URL_SERVER = "database.url.server";
     
    public Connection getConnection() throws SQLException, FileNotFoundException, IOException {
            if (connect != null)
                return connect;
            if (driverManager == null) {
                loadProperties();
                try {
                    driverManager = Class.forName(driverName).newInstance();
                } catch (ClassNotFoundException e) {
                    throw new SQLException();
                } catch (InstantiationException e) {
                    throw new SQLException();
                } catch (IllegalAccessException e) {
                    throw new SQLException();
                }
            }
            if (driverManager == null) {
                throw new SQLException("Driver Manager null");
            }
            try {
                connect = DriverManager.getConnection(url, user, pwd);
                if (connect.isClosed()) {
                    return null;
                }
            } catch (SQLException e) {
     
                if (e.getErrorCode() == 1049) {
                    connect = DriverManager.getConnection(urlServeur, "root",
                            "secret");
                    createDB();
                } else {
                    throw new SQLException("Connection impossible");
                }
            }
            return connect;
        }
     
        private void loadProperties() throws SQLException, FileNotFoundException, IOException {
     
                PropertyResourceBundle resource = new PropertyResourceBundle(new FileInputStream("/home/jgislard/workspace/chrono/src/com/atosorigin/toulon/chrono/ressources/jdbcCHRONO.properties"));
     
            if (resource == null) {
                StringBuffer strException =
                    new StringBuffer("Impossible de récupérer le fichier ");
                strException.append(JdbcCHRONO.JDBC_CONFIG_FILE);
                strException.append(".properties dans le classpath");
                throw new SQLException(strException.toString());
            }
            //On récupère les paramètres
            try {
                this.driverName = resource.getString(JDBC_DRIVER_PROPERTY);
                this.url = resource.getString(JDBC_URL_PROPERTY);
                this.user = resource.getString(JDBC_USER_PROPERTY);
                this.pwd = resource.getString(JDBC_PASSWORD_PROPERTY);
                this.urlServeur=resource.getString(JDBC_URL_SERVER);
            } catch (MissingResourceException mre) {
                throw new SQLException("Problèmes de récupération des paramètres JDBC");
            }
        }
    et dans ton fichier properties :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    database.url.server=jdbc:mysql://adresseIp/
    database.driver.classname= //nom de la classe du driver JDBC
    database.driver.url=jdbc:mysql://adresseIp/nomDeLaBase
    database.user=user
    database.password=password

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 40
    Par défaut
    merci à vous pour vos réponses.


    mon problèmes est pour le moment encore plus bète que ça. J'ai beau chercher, je n'arrive pas à trouver quelle est cette foutue adresse IP de multimania

    j'ai testé
    jdbc:mysql://multimania.lycos.fr/
    jdbc:mysql://membres.lycos.fr/
    jdbc:mysql://lycos.fr/

    j'obtient (en toute logique) une com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException ...


    comment puis-je trouvée cette ip ?

    merci encore


    (je m'occuperai du fichier properties après, ça me semble très interressant !)

  5. #5
    Membre émérite

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Par défaut
    je suppose que tu as un URL pour acceder a ton nom de domaine ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Si tu es sur Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    host multimania.lycos.fr
    Je ne connais pas la commande équivalente pour Windows.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    Ca m'étonnerait que Multimania autorise la connexion à leur base, de l'extérieur.
    Je peux me tromper, mais ça ne serait pas très sécurisé...

  8. #8
    Membre émérite

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Par défaut
    si il t'héberge ils sont bien obligé de te fournir un accés

    sinon cela ne sert a rien

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    Ben si ça sert pour les sites php qui s'executent de chez eux.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 40
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Ben si ça sert pour les sites php qui s'executent de chez eux.
    C'est bien ce dont j'ai peur malheureusement

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 40
    Par défaut
    Citation Envoyé par verbose Voir le message
    Si tu es sur Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    host multimania.lycos.fr
    Je ne connais pas la commande équivalente pour Windows.
    J'ai testé ça sous unix.

    Je trouve bien des IP pour
    - multimania.lycos.fr
    - membres.lycos.fr
    - multimania.fr


    mais aucune ne fonctionne

Discussions similaires

  1. Connecter Mysql avec Java
    Par benthebest dans le forum Débuter
    Réponses: 1
    Dernier message: 16/02/2010, 11h58
  2. Se connecter sur un site avec Java
    Par Mithandir dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 30/12/2008, 10h35
  3. Réponses: 2
    Dernier message: 18/07/2007, 19h26
  4. BD mysql avec java
    Par yasmine* dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 10/01/2007, 21h19
  5. Réponses: 5
    Dernier message: 10/10/2006, 09h39

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