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

Langage Java Discussion :

creation de fonction et appel via une autre classe


Sujet :

Langage Java

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut creation de fonction et appel via une autre classe
    bonjour à tous!!

    déjà, bonne année 2008!!

    mes methodes concernent tout particulièrement le code permettant de se connecter à la base de données
    je les ai creer dans une classe afin de pouvoir les réutiliser à chaque fois qu'on a besoin de faire une requete.

    voici ma ConnexionBdd.java

    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
     
    import java.sql.*;
    public class ConnexionBdd 
     
    {
     
    	//1 classe de connexion
     
    	public void Connec() throws ClassNotFoundException
    	{
     
    	Connection conn;
     
    	String pilote = "org.gjt.mm.mysql.Driver";
    	String url ="jdbc:mysql://localhost/films";
     
    	try
    	  {
    			Class.forName(pilote);			 
     
    			conn = DriverManager.getConnection(url,"","");
     
     
    	  }
     
    	catch ( SQLException E)
    	  {
    	System.out.println("SQLException: " + E.getMessage());
        System.out.println("SQLState:     " + E.getSQLState());
     
    	  }
     
     
    	}
     
     
    	public void stat() throws SQLException, ClassNotFoundException
    	{
    		ConnexionBdd  c = new ConnexionBdd ();
    		c.Connec();
    		Connection conn = null;
     
    		try 
    		{
    		Statement stmt = conn.createStatement(); 
    		}
     
    		catch ( SQLException E)
    		  {
    		  	System.out.println("SQLException: " + E.getMessage());
    	      System.out.println("SQLState:     " + E.getSQLState());
     
     
    		  }
     
     
    	}
    }

    à partir d'une autre classe (on va dire classe1.java), j'appelle les 2 methodes Connec() et stat() de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    ConnexionBdd connec = new ConnexionBdd();
    connec.Connec();
    connec.stat();
    mais j'ai des erreurs (je suis sous Eclipse) :
    Unhandled exception type ClassNotFoundException

    je ne sais pas à quoi ceci est du et je en m'en sors pas du tout
    peut être que l'ecriture de mes methodes est mal faite, ou que l'appel de ces methodes laisse à desirer ...

    quelqu'un pourrait il m'aider?

    merci beaucoup

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Le message est assez clair : Unhandled exception type ClassNotFoundException

    vu la signature de ta méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void Connec() throws ClassNotFoundException
    elle est susceptible de lancer une ClassNotFoundException

    Donc quand tu l'utilises, il faut gérer cette exception. C'est ce que te dis Eclipse : "Hého tu gères pas l'exception ClassNotFoundException, ça va pas ou quoi !"

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    try {
     connec.Connec(); 
    } cacth (ClassNot...)
    Ca devrait mieux fonctionner ...

    [EDIT] d'ailleurs si tu cliques sur le symbole d'erreur à gauche de la ligne, il te propose de le faire lui-même ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    bonjour
    tout d'abord, dslé pour la réponse super tardive


    ensuite, voici ce que j'ai fait (j'ai tout rassemblé dans une meme methode) et l'erreur s'en ait allée (j'ai enlevé ce que tu m'as dit d'oter)

    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
     
    public void stat() 
    	{
    		String pilote = "org.gjt.mm.mysql.Driver";
    		String url ="jdbc:mysql://localhost/films";
     
    		Connection conn;
     
     
    			try {
    				Class.forName(pilote);
    			} catch (ClassNotFoundException e) {
    				// TODO Bloc catch auto-généré
    				e.printStackTrace();
    			}
     
    			try 
    			{
     
    			conn = DriverManager.getConnection(url,"moi","29");
    			Statement stmt = conn.createStatement(); 
    		}
     
    		catch ( SQLException E)
    		  {
    		  	System.out.println("SQLException: " + E.getMessage());
     
     
    		  }
     
     
    	}
    est ce que mon code est correcte et est ce que 'jai bien fait de tout rassembler en une seule methode?

    merci encore

  4. #4
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut
    bonsoir,
    ceci devrait fonctionner:
    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
     
    import java.sql.*;
     
    public class ConnexionBdd 
     {
    public	Connection conn = null;
    public Statement state = null;
     
    public void connect()
    {
    		try{
    			/** Etape 1: charger le pilote */
    			Class.forName("com.mysql.jdbc.Driver");
     
    			/** Etape 2: Etablissement de la connexion à la base de données */
    						conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=root");
     
    			/** Etape 3: produire le Statement */
     
    			state = conn.createStatement();
     
     
    		}
    		catch (ClassNotFoundException ex){System.out.println("Class not found!\n"+ex.getMessage());}
    		catch (SQLException ex){System.out.println("JDBC error:\n"+ex.getMessage());}
     
    }
    }
    sinon regarde un peu plus coté exception

Discussions similaires

  1. Fonction Protected utilisée dans une autre classe
    Par dinguedemoi dans le forum Langage
    Réponses: 17
    Dernier message: 13/07/2009, 09h28
  2. Réponses: 3
    Dernier message: 23/05/2009, 18h57
  3. Faire appel a une autre classe
    Par OsTaLaKaR dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 03/03/2009, 16h38
  4. [Débutant]Agir sur ma fenêtre via une autre classe o_O
    Par h0peless dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/02/2008, 11h07
  5. GC appel depuis une autre classe
    Par dark2 dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 09/06/2006, 05h53

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