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

Struts 1 Java Discussion :

Interfacer Struts + Hibernate


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club Avatar de Bateau_Ivre
    Inscrit en
    Janvier 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut Interfacer Struts + Hibernate
    Bonjour,
    Je developpe une petite appli pour tester Struts et Hibernate. J'ai une page de login :

    Voici le code de AccueilForm dans la Vue:

    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
     
    public class AccueilForm extends ActionForm {
     
    	/** Déclaration des variables ***************************************************/
    	private String login = null;
    	private String password = null;
     
    	/** Accesseurs ******************************************************************/
     
    	public String getLogin() {
    		return login;
    	}
     
    	public void setLogin( String login ){
    		this.login = login;
    	}
     
    	public String getPassword() {
    		return password;
    	}
     
    	public void setPassword( String password ){
    		this.password = password;
    	}
     
    }
    Voici le code de AccueilAction dans le controleur :
    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
     
    public class AccueilAction extends Action {
     
    	/** Méthode ActionForward */
    	public ActionForward execute (ActionMapping mapping, ActionForm form,
    				HttpServletRequest request, HttpServletResponse response  ){
     
    		AccueilForm accueilForm = ( AccueilForm ) form;
    		Login login = new Login();
     
    		try {
    			BeanUtils.copyProperties( login, accueilForm );
    		}
    		catch (IllegalAccessException e) {
    			e.printStackTrace();
    		}
    		catch (InvocationTargetException e) {
    			e.printStackTrace();
    		}
     
    		request.setAttribute(mapping.getAttribute(), login);
     
    		if ( login.getLogin().equals("login") && login.getPassword().equals("password") ) {
    			return mapping.findForward("succes_accueil_mediatheque");
    		}
    		else {
    			return mapping.findForward("erreur_accueil_mediatheque");
    		}
    	}
    }
    C'est au niveau de la Class Login que je dois implementer Hibernate. ET là je ne voisp as bien comment faire. Quelqu'un pourrait m'aiguiller ?
    Merci d'avance.

  2. #2
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 198
    Points : 76
    Points
    76
    Par défaut
    salut,
    en developpent avec struts donc tu dois suivre le paradigme MVC:
    struts s'occupe de View (tes pages jsp)et de Controleur(qui sont les actions)
    pour le modele (acces à ta base)c'est hibernate qui s'occupe de ça.
    pour les integrer voila un lieu qui peut t'aider
    http://www.laliluna.de/struts-hibern...torial-en.html
    est ce que tu peux donner quel IDE aveclequel tu travailles?

    bon courage

  3. #3
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour à toi,

    Juste pour rajouter que struts et hibernate co existe bien dans un projet, cependant, il fonctionne indépendamment l'un de l'autre (on ne précise pas dans les fichiers de conf de struts qu'on utilise hibernate et vice versa). Ce qui veut dire que tu as mis en place Struts c'est une chose (tu aurais pu commencer par mettre en place hibernate, pourquoi pas). Voila pourquoi tu as juste à mettre en place hibernate sans te soucier de struts pour le moment (je parle des fichiers de configuration, les jar, les fichiers de mapping...) http://www.hibernate.org/hib_docs/v3/reference/fr/html/ la doc de hibernate explique la démarche ou tu peux aller chercher des tutos, il y en a d'autres.

  4. #4
    Nouveau membre du Club Avatar de Bateau_Ivre
    Inscrit en
    Janvier 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut EDI
    Je travaille avec Eclipse 3.3

  5. #5
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    As tu mis en place ton fichier de config Hibernate i.e. hibernate.properties ou hibernate.cfg.xml (perso, je préfere le .xml) L'explication est donnée ici (en cherchant dans la page ): http://www.hibernate.org/hib_docs/v3...iguration.html
    Ca va te permettre de définir toutes les options de configuration d'accès à la base, le choix de la classe Dialect à utiliser, et plein d'autres options utiles...

    Après, il faudra que tu fasses tes fichiers de mapping (.hbm.xml) avec leur classe mappée.

  6. #6
    Nouveau membre du Club Avatar de Bateau_Ivre
    Inscrit en
    Janvier 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Je suis en train de mettre en place hibernate.
    J'y vais à pas de velours ...
    Je suis effectivement passé par le hibernate.cfg.xml
    J'attaque les fichiers de mapping là ...

  7. #7
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Citation Envoyé par Bateau_Ivre Voir le message
    J'y vais à pas de velours ...
    C'est la meilleur chose à faire
    Pour les fichiers de mapping, il faut s'assurer de la totale cohérence avec ta base, mais aussi la classe Java.
    Si tu veux, si jamais ca ne marche pas, n'hésites pas à poster ici ton code qu'on y regarde un peu.

  8. #8
    Nouveau membre du Club Avatar de Bateau_Ivre
    Inscrit en
    Janvier 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut Exemple simple : verifier un couple login/password dans la base
    Bon j'ai pas mal avancé dans la mise en place d'Hibernate. Mais là je bute. Du coup je reviens demander de l'aide :

    Voici ma Class User correspondant à ma table user dans ma DB :

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    // Generated 4 juin 2008 18:22:46 by Hibernate Tools 3.2.1.GA
     
    /**
     * package
     */
    package modele.dao;
     
    /**
     * imports
     */
    import java.util.HashSet;
    import java.util.Set;
     
    /**
     * User generated by hbm2java
     */
    public class User implements java.io.Serializable {
     
    	private Long idUser;
    	private String nomUser;
    	private String prenomUser;
    	private String emailUser;
    	private String loginUser;
    	private String passwordUser;
    	private Set empruntes = new HashSet(0);
    	private Set medias = new HashSet(0);
     
    	public User() {
    	}
     
    	public User(String nomUser, String prenomUser, String emailUser,
    			String loginUser, String passwordUser) {
    		this.nomUser = nomUser;
    		this.prenomUser = prenomUser;
    		this.emailUser = emailUser;
    		this.loginUser = loginUser;
    		this.passwordUser = passwordUser;
    	}
     
    	public User(String nomUser, String prenomUser, String emailUser,
    			String loginUser, String passwordUser, Set empruntes, Set medias) {
    		this.nomUser = nomUser;
    		this.prenomUser = prenomUser;
    		this.emailUser = emailUser;
    		this.loginUser = loginUser;
    		this.passwordUser = passwordUser;
    		this.empruntes = empruntes;
    		this.medias = medias;
    	}
     
    	public Long getIdUser() {
    		return this.idUser;
    	}
     
    	public void setIdUser(Long idUser) {
    		this.idUser = idUser;
    	}
     
    	public String getNomUser() {
    		return this.nomUser;
    	}
     
    	public void setNomUser(String nomUser) {
    		this.nomUser = nomUser;
    	}
     
    	public String getPrenomUser() {
    		return this.prenomUser;
    	}
     
    	public void setPrenomUser(String prenomUser) {
    		this.prenomUser = prenomUser;
    	}
     
    	public String getEmailUser() {
    		return this.emailUser;
    	}
     
    	public void setEmailUser(String emailUser) {
    		this.emailUser = emailUser;
    	}
     
    	public String getLoginUser() {
    		return this.loginUser;
    	}
     
    	public void setLoginUser(String loginUser) {
    		this.loginUser = loginUser;
    	}
     
    	public String getPasswordUser() {
    		return this.passwordUser;
    	}
     
    	public void setPasswordUser(String passwordUser) {
    		this.passwordUser = passwordUser;
    	}
     
    	public Set getEmpruntes() {
    		return this.empruntes;
    	}
     
    	public void setEmpruntes(Set empruntes) {
    		this.empruntes = empruntes;
    	}
     
    	public Set getMedias() {
    		return this.medias;
    	}
     
    	public void setMedias(Set medias) {
    		this.medias = medias;
    	}
     
    }
    Voici maintenant ma Class HibernateUtil :

    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
     
    /**
     * package
     */
    package utilitaires.hibernate;
     
    /**
     * imports 
     */
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    /**
     * La classe HibernateUtil ( SessionFactory ) fournit des objets
     * Session permettant de manipuler les données.
     * @author 
     */
    public class HibernateUtil {
     
    	// Déclaration de la SessionFactory
    	private static final SessionFactory sessionFactory;
     
    	static {
     
    		try {
    			// On crée ici la SessionFactory
    			sessionFactory = new Configuration().configure().buildSessionFactory();
    		}
     
    		catch ( HibernateException hE ) {
    			throw new RuntimeException( " Problème de configuration " + hE.getMessage(), hE );
    		}
    	}
     
    	// Déclaration du ThreadLocal
    	public static final ThreadLocal session = new ThreadLocal();
     
    	/**
             * Méthode currentSession()
             * @return Session
             * @throws HibernateException
             */
    	public static Session currentSession() throws HibernateException {
    		Session s = ( Session ) session.get();
    		// Ouvre un nouvelle Session si ce thread n'en a aucune
    		if ( s == null ) {
    			s = sessionFactory.openSession();
    			session.set(s);
    		}
    		return s;		
    	}
     
    	/**
             * Méthode closeSession()
             * @throws HibernateException
             */
    	public static void closeSession() throws HibernateException {
    		Session s = ( Session )session.get();
    		session.set(null);
    		if ( s != null ) {
    			s.close();
    		}
    	}
     
    }
    J'ai crée une Class LoginHibernate pour tester l'implémentation d'hibernate. En commentaires, les points ou je plante :

    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
     
    /**
     * package
     */
    package utilitaires.hibernate;
     
     
    /**
     * imports
     */
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import modele.dao.User;
     
    /**
     * @author 
     *
     */
    public class LoginHibernate {
     
    	public boolean valideIdentification (String login, String password ) {
     
    		String loginVue = login;
    		String passwordVue = password;
    		String loginBase = null;
    		String passwordBase = null;
    		boolean identification = false;
     
    		Transaction tX = null;
    		Session session = HibernateUtil.currentSession();
     
    		try {
    			tX = session.beginTransaction();
    			// Je ne sais pas ici comment récupérer les attributs login et password du user depuis la base ....
     
    			// On contrôle si le couple login - password existe bien
    			if ( loginBase == loginVue &&  passwordBase == passwordVue ) {
    				identification = true;
    			}
    			else {
    				identification = false;
    			}
    		}
    		catch ( HibernateException hE ) {
    			hE.printStackTrace();
    		}
    		return identification;
    	}
    }
    Merci de votre aide ....
    PS : Pas évident Hibernate dans les débuts ....

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    Je ne vois nulle part vos requêtes qui vont te permettre d’interroger votre base de données
    Tu dois créer une classe par exemple userinteroge qui va contenir les requêtes de selection,modification ,….


    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
     
     
    classe userinteroge
    public Book getuserByPrimaryKey(Integer primaryKey) {
        /* holds our return value */
        User user = null;
        /* a Hibernate session */
        Session session = null;
        /* we always need a transaction */
        Transaction tx = null;
     
        try {
          /* get session of the current thread */
          session = HibernateSessionFactory.currentSession();
     
          tx = session.beginTransaction();
          user = (User) session.get(user.class, primaryKey);
          tx.commit();
        } catch (HibernateException e) {
          e.printStackTrace();
          // [laliluna] 17.12.2004 it is recommended to roll back the transaction after an error occured
          if (tx != null) try {
            tx.rollback();
     
          } catch (HibernateException e1) {
            e1.printStackTrace();
          }
     
        } finally {
          try {
            if (session != null) session.close();
          } catch (HibernateException e1) {
            e1.printStackTrace();
          }
        }
        return user;
      }
    Et dans l’action tu va mettre
    Userinteroge l=new userinteroge() // classe d’interrogation
    User e= new user() // c’est le USERFORM
    Et user=l. getuserByPrimaryKey//pour recuperer votre user de la table
    Et tu fais la comparaison
    if(userloginForm.getNom().equals(user.getLoginUser())&&(userloginForm.getPassword().equals(user.getPasswordUser())))…….

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/05/2006, 22h02
  2. [Data] [STRUTS][HIBERNATE] fichier de conf
    Par nikalkal dans le forum Spring
    Réponses: 1
    Dernier message: 26/04/2006, 17h10
  3. SPRING+STRUTS+HIBERNATE. Une bonne solution ?
    Par ollivier dans le forum Struts 1
    Réponses: 9
    Dernier message: 10/04/2006, 13h16
  4. Réponses: 2
    Dernier message: 02/03/2006, 19h29
  5. [STRUTS/HIBERNATE] Problème d'exécution de requête
    Par mc_chicken dans le forum Hibernate
    Réponses: 5
    Dernier message: 21/10/2005, 09h27

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