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

Java Discussion :

Implémenter pattern DAO


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 29
    Par défaut Implémenter pattern DAO
    Bonjour,
    j'essaie d'utiliser le pattern DAO en me basant sur des tutoriels trouvé sur différent sites. malheuresement je dois avoir une erreur quelques part que je ne vois pas car j'ai une erreur.
    Je vous mets mes bout de code ci dessous :

    C'est ici que j'ai l'erreur eclipse me propose de passer ma classe ChambresDao abstract

    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
    package menus;
     
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import menus.DAO;
     
    //CTRL + SHIFT + O pour générer les imports
    public  class ChambresDao extends DAO<Chambres> {
    public ChambresDao(Connection conn) {
      super(conn);
    }
     
    public boolean create(Chambres obj) {
      return false;
    }
     
    public boolean delete(Chambres obj) {
      return false;
    }
     
    public <Chambre> boolean update(Chambres obj) {
      return false;
    }
     
    public Chambres find(int id) {
    	Chambres chambre = new Chambres();      
     
      try {
        ResultSet result = this.connect.createStatement(
          ResultSet.TYPE_SCROLL_INSENSITIVE,
          ResultSet.CONCUR_READ_ONLY).executeQuery("SELECT * FROM CHAMBRES WHERE ID_CHAMBRE = " + id);
        if(result.first())
          chambre = new Chambres(
            id,
            result.getString("NUMERO"),result.getString("LOCALISATION"));         
      } catch (SQLException e) {
        e.printStackTrace();
      }
      return chambre;
    }
    }

    Les autres calsses :


    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
    package menus;
     
    public class Chambres {
     
     
      private int id = 0;
      private String numero = "", localisation="";
     
     
      public Chambres(int id, String nom,String localisation) {
        this.id = id;
        this.numero = numero;
        this.localisation = localisation;
     
      }
      public Chambres(){
     
      };
     
      public int getId() {
        return id;
      }
     
      public void setId(int id) {
        this.id = id;
      }
     
      public String getNumero() {
        return numero;
      }
     
      public void setNumero(String nom) {
        this.numero = numero;
      }
     
      public String getLocalisation() {
    	    return localisation;
    	  }
     
    	  public void setLocalisation(String localisation) {
    	    this.localisation = localisation;
    	  }
    }
    et pour finir

    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
    package menus;
     
    import java.sql.Connection;
     
    public abstract class DAO<T> {
      protected Connection connect = null;
     
      public DAO(Connection conn){
        this.connect = conn;
      }
     
      /**
      * Méthode de création
      * @param obj
      * @return boolean 
      */
      public abstract boolean create(T obj);
     
      /**
      * Méthode pour effacer
      * @param obj
      * @return boolean 
      */
      public abstract boolean delete(T obj);
     
      /**
      * Méthode de mise à jour
      * @param obj
      * @return boolean
      */
      public abstract boolean update(T obj);
     
      /**
      * Méthode de recherche des informations
      * @param id
      * @return T
      */
      public abstract T find(int id);
    }

    le code de test

    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
    package menus;
     
    //CTRL + SHIFT + O pour générer les imports
    public class FirstTest { 
     
    	public FirstTest(){
      //Testons des élèves
      DAO<Chambres> ChambresDao = new ChambresDao(DatabaseConnection.getInstance());
      for(int i = 1; i < 5; i++){
    	Chambres chambre = ChambresDao.find(i);
        System.out.println("Elève N°" + chambre.getId() + "  - " + chambre.getNumero() + " " + chambre.getLocalisation());
      }
     
      System.out.println("\n********************************\n");
    	}
     
    }

    j'ai pourtant essayé de bien me caler sur le tutoriel que j'ai trouvé... je me demande si le problème c'est pas une histoire d'import dans une class mal fait mais je maitrise pas encore bien le sujet.

    Merci de vos lumières.
    Fabrice

  2. #2
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Peux tu poster la trace de l'erreur?

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 29
    Par défaut Les traces d'erreur si je force l'execution
    Bonjour,
    merci beaucoup de t’intéresser à mon problème.

    voici l'erreur si je force l'execution du 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Exception in thread "AWT-EventQueue-0" java.lang.ClassFormatError: Duplicate method name&signature in class file menus/ChambresDao
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at java.security.SecureClassLoader.defineClass(Unknown Source)
    	at java.net.URLClassLoader.defineClass(Unknown Source)
    	at java.net.URLClassLoader.access$100(Unknown Source)
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at menus.accueil.actionPerformed(accueil.java:105)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$200(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Ce que j'en ai retenu c'est :
    Duplicate method name&signature in class file menus/ChambresDao
    mais je ne comprends pas pourquoi ça dis ça !!!

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    euh?
    kéxéxa?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public <Chambre> boolean update(Chambres obj) {
      return false;
    }

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 29
    Par défaut super c est ça :)
    Merci beaucoup,

    c'était bien ça le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public boolean update(Chambres obj) {
      return false;
    }
    j'ai un peu honte de pas l'avoir vu mais bon, c'est vrai qu'a force de se relire dès fois on ne voit plus rien surtout quand on ne maitrise pas le sujet.

    Maintenant le plus dure reste à faire : bien comprendre comment tout ça fonctionne pour pouvoir l'exploiter proprement

    Merci encore pour ton regard éclairé

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

Discussions similaires

  1. [Data] Implémenter un DAO JDBC
    Par afrikha dans le forum Spring
    Réponses: 4
    Dernier message: 19/06/2012, 17h50
  2. [EJB3 Entity] Utilisation du pattern DAO ?
    Par damien77 dans le forum Java EE
    Réponses: 3
    Dernier message: 14/02/2009, 19h01
  3. implémentation Pattern MVC
    Par cyberlulu dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 01/11/2008, 16h50
  4. integrer le pattern DAO
    Par questionneuse dans le forum JSF
    Réponses: 7
    Dernier message: 01/02/2008, 16h56
  5. [Plugin][Hibernate] Patterns DAO avec hybernate
    Par BarbapapaDK dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/03/2006, 09h53

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