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

Servlets/JSP Java Discussion :

Comment bien déclarer sa connexion


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut Comment bien déclarer sa connexion
    Bonjour,
    J'ai un problème car je voudrais savoir si il faut déclarer sa connexion sur chaque page ou faire un scope session enfin je ne sais pas trop quel démarche adopté pour une connexion efficace et fiable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%try {   // tenter de récupérer le driver Mysql  
              Class.forName("com.mysql.jdbc.Driver").newInstance();      
             System.out.println("Chargement du pilote Mysql réussi");   }catch(Exception e) {  
             System.err.print("Erreur de chargement du pilote : ");   System.err.println(e.getMessage());}%>
    	 <% String url = "jdbc:mysql://localhost:50083/mabase";
             try{//tenter de se connecter a ma base
                     java.sql.Connection cnx=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:50083/mabase","root","");
             System.out.println("Connecté à mabase");   }catch(Exception e) {  
                             System.err.print("Erreur de chargement de la base : ");   System.err.println(e.getMessage());}
                            
            %>
    Une autre question dans un bean j'ai crée une méthode pour insérer un client dans la BD mais quand dans ma page je tape le code ci dessous il m'apparait une erreur "cnx cannot be resolved to a variable"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Client ClientCourant =new Client(clientDefinition);
     session.setAttribute("Client", ClientCourant);
    	ClientCourant.insertBase(cnx);
    La methode insertBase:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void insertBase(Connection cnx) throws SQLException{
    java.sql.Statement req= cnx.createStatement();
    String requete="INSERT INTO Client VALUES('";
    StringBuilder sb = new StringBuilder(requete);
    sb.append(this.mail+"','");sb.append(this.nom+"','");sb.append(this.prenom+"','");sb.append(this.age+"','");sb.append(this.sexe+"','");sb.append(this.pays+"','");sb.append(this.ville+"','");sb.append(this.adresse+"','");sb.append(this.codePostal+"','");sb.append(this.motDePasse+"'\"");
    req.executeUpdate(sb.toString());
    req.close();}
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    le mieux étant de faire un pool de connexion à ta base ... à déclarer au niveau du tomcat.

    je le fais sous Oracle et pour mes Portlets .... surement possible pour MySql.

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    tout à fait. Il faut déclarer un pool de connexions JDBC puis une ressource JNDI sur ce pool qui donne un DataSource, le tout au niveau du serveur (tomcat, glassfish, etc.)

    Au niveau applicatif, tu réclames alors un DataSource au serveur d'app qui te permettra de requêter ta base.

    déclaration du DataSource dans Tomcat, par exemple :
    http://tomcat.apache.org/tomcat-5.5-...les-howto.html

    usage du DataSource dans une page JSP:
    http://www.java2s.com/Code/Java/JSP/...DataSource.htm


    PS : faire du requêtage SQL directement dans les pages JSP, c'est comme le côté obscur de la force ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    d'accord merci les gas donc en faite le début du programme pour me connecter je peux l'enlever si j'ai bien compris^^

  5. #5
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    exactement car c'est le serveur d'application (tomcat) qui se connecte pour toi (et qui maintien d'ailleurs un certain nombre de connexions).

    ton driver JDBC doit d'ailleurs être situé dans les libs du serveur d'application (et plus dans ta propre webapp). Mais ça c'est expliqué dans le premier lien que je t'ai donné.

    enfin, il ne faut pas oublier le close() sur les Statement et les ResultSet, autant que sur la Connection, sinon la connexion pourrait ne pas être restituée au pool.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment bien déboguer son code ?
    Par D[r]eadLock dans le forum Débuter
    Réponses: 47
    Dernier message: 02/04/2024, 16h06
  2. Comment bien gérer une connexion à un serveur MySQL
    Par Swisstone dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 04/12/2012, 12h07
  3. Réponses: 3
    Dernier message: 27/05/2011, 13h42
  4. comment déclarer une connexion LDAP en global ?
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/03/2007, 15h24
  5. Comment bien gerer la mémoire avec les TStringList?
    Par david_chardonnet dans le forum Langage
    Réponses: 5
    Dernier message: 18/06/2003, 09h57

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