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 :

[java et php]Connection bd distante


Sujet :

JDBC Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut [java et php]Connection bd distante
    Hello tout le monde!

    Je suis sur un projet devant permettre de mettre en ligne des questionnaires depuis une application java.
    En fait je créer mon questionnaire sous java et ensuite je dois le transferer sur mon site php pour que les utilisateurs puissent y répondre pour ensuite analyser les réponses et faire des rapports.
    J'aimerais votre avis sur l'implémentation a faire pour que cela fonctionne correctement, mais que la réalisation me prenne le moins de temps possible. (Je suis super stress pour faire cette applic)

    Je souhaite savoir quel est selon vous le meilleur moyen de stocker mon questionnaire dans une bd située sur le serveur. Je pense que la solution la plus élégante serait de faire un client java et un webservice php stockant le questionnaire, mais je ne maitrise absolument pas les webservices php (jamais touché).
    Je pense donc me résoudre a simplement utiliser un appelle du type depuis mon applic java pour stocker les questionnaires et ensuite accéder a cette bd depuis php pour afficher les questionnaires et stocker les réponses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String url = "jdbc:mysql://MonSite/nom_base";
    Connection con = DriverManager.getConnection(url, "root", "pass");
    Est ce possible et tout de meme solide comme manière de faire?
    Peut on définir les acces a la bd pour eviter que mon applic java insérant les questionnaires travail simultanemment sur la bd avec l'application Web stockant les réponses??

    Merci d'avance!

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 76
    Par défaut
    L'idée est techniquement correcte, il n'y a pas de raison pour ne pas pouvoir la mettre en pratique.

    Seulement tenez compte de deux petits details.

    Pour que vous pouvez vous brancher sur la base de données...

    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON basededonnées.* to usager_mysql@'ton_IP_adresse' identified by 'password'

    Et enfin, pour ne pas permettre au programme Java d'écrire lors d'une lecture PHP, et à l'inverse, vous devriez définir un "semaphore", de telle façon que il indique deux états différents selon l'activité Java, en faisant usage soit d'une donée spécifique dans une table, soit d'une capabilité de MySQL.

    Une autre idée -pas pour cette situation que vous commentez, mais peut-être pour le futur- serait celle de faire fonctionner un "daemon" qui refraîchisse certaines données de temps en temps.

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Accessoirement la quasi totalité des hébergeur php (comme free par exemple) n'autorisent pas l'accès à leur base depuis l'extérieur donc c'est un peu mort pour toi...

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 76
    Par défaut
    Je méconnaissais comment free fonctionnait-il.

    Dans ce cas, on pourrait toujours ouvrir depuis Java une url PHP (qui travaille avec une MySQL en 'localhost' - pas d'accès extérieur) et lui transmettre -sous la forme de paramètres après le '?'- le mode de fonctionamment désirée. Ce serait une façon d'accès a une banque de données moins directe et élégante, mais également utile si attention! l'on prévoit des mécanismes de défense contre SQL Injection.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut
    Citation Envoyé par sinok
    Accessoirement la quasi totalité des hébergeur php (comme free par exemple) n'autorisent pas l'accès à leur base depuis l'extérieur donc c'est un peu mort pour toi...
    C'est dans le cadre d'un projet développé pour un client, mais en interne, donc pas de problème de ce coté la!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut
    J'ai encore une question concernant ce type de connexion. Le serveur auquel je dois accéder doit recevoir des connexions via ssh, mais je ne vois absolument pas comment le faire depuis l'applic java...?

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 76
    Par défaut
    Bonjour,

    Vous pouvez accéder SSH depuis Java en utilisant le suivant (Classe URL):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
    URL url = new URL (https://www.tondomaine.com");
    InputStream is = (InputStream)url.getContent();
    Si vous voulez encore un contrôle plus précis sur la connexion, à un niveau plus bas, vous pouvez essayer à utiliser les Sockets SSL (Classes SSLServerSocketFactory, SSLServerSocket et SSLSocket) et a gérer les certificats de sécurité par le biais de l'outil keyTool

    J'espère que tout ça vous servira.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Par défaut
    Citation Envoyé par Iván Y.
    Bonjour,

    Vous pouvez accéder SSH depuis Java en utilisant le suivant (Classe URL):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
    URL url = new URL (https://www.tondomaine.com");
    InputStream is = (InputStream)url.getContent();
    Si vous voulez encore un contrôle plus précis sur la connexion, à un niveau plus bas, vous pouvez essayer à utiliser les Sockets SSL (Classes SSLServerSocketFactory, SSLServerSocket et SSLSocket) et a gérer les certificats de sécurité par le biais de l'outil keyTool

    J'espère que tout ça vous servira.
    Hello!
    Voila la methode que j'utilise pour le moment pour me connecter sur mon serveur Wamp en local
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        private static Connection connexionBD() {
            try {
                // Chargement du driver ODBC
                Class.forName("com.mysql.jdbc.Driver");
                // connexion à la BD
                conBD = DriverManager.getConnection(url, nomUtilisateur, motDePasse);
                return conBD;
            } catch(Exception e) {
                e.printStackTrace();
                System.out.println("erreur connexion");
                JOptionPane.showMessageDialog(null, "You can not publish the questionnaire, you do not have access to the Web application!", "Warning", JOptionPane.ERROR_MESSAGE);
                return conBD;
            }
        }
    Je ne comprends pas bien comment modifier la méthode pour utiliser ton code et pouvoir accéder à ma base de données sur le serveur...

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 76
    Par défaut
    Bonjour,

    Ma solution était plutôt pensée pour vous permettre de vous brancher sur l'URL https://ww.tondomaine.com/tonPHPPage.php, qui devrait accéder la banque de données MySQL.

    Sinon, je ne suis pas sûr si le driver JDBC MySQL vous laisse faire le suivant, mais avec postgresql, ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Properties props = new Properties();
    props.setProperty("user","tonUser");
    props.setProperty("password","tonMotDePasse");
    props.setProperty("ssl","true");
    Connection conn = DriverManager.getConnection(url, props);

  10. #10
    Invité de passage
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1
    Par défaut
    Citation Envoyé par delma
    Hello!
    Voila la methode que j'utilise pour le moment pour me connecter sur mon serveur Wamp en local
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        private static Connection connexionBD() {
            try {
                // Chargement du driver ODBC
                Class.forName("com.mysql.jdbc.Driver");
                // connexion à la BD
                conBD = DriverManager.getConnection(url, nomUtilisateur, motDePasse);
                return conBD;
            } catch(Exception e) {
                e.printStackTrace();
                System.out.println("erreur connexion");
                JOptionPane.showMessageDialog(null, "You can not publish the questionnaire, you do not have access to the Web application!", "Warning", JOptionPane.ERROR_MESSAGE);
                return conBD;
            }
        }
    Je ne comprends pas bien comment modifier la méthode pour utiliser ton code et pouvoir accéder à ma base de données sur le serveur...
    Salut, je dois me connecter sur le serveur WAMP à partir d'un programme en Java, mais ça ne marche pas (meme avec ton code). Je suis sous Eclipse, faut-il un driver à installer ?

Discussions similaires

  1. Connection Serveur Distant SQL Server 2000
    Par LeNeutrino dans le forum JBuilder
    Réponses: 2
    Dernier message: 16/11/2005, 10h45
  2. Exécution java et php
    Par KinF dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/11/2005, 15h02
  3. Connection bd "distante"
    Par krfa1 dans le forum ASP
    Réponses: 2
    Dernier message: 13/09/2005, 14h07
  4. Création d'un chat : java ou php ?
    Par bakonu dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 13/01/2005, 10h57
  5. connection server distant - interbase
    Par thanandra dans le forum InterBase
    Réponses: 5
    Dernier message: 04/11/2003, 12h23

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