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

JSF Java Discussion :

CRUD JSF et Hibernate


Sujet :

JSF Java

  1. #1
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut CRUD JSF et Hibernate
    Je suis conscient de prendre beaucoup de votre temps.
    Mais ect ce que c'est comme ca qu'on enrengistre un membre sur hibernate et jsf 1.2

    Merci pour votre aide.

    Voici le managed bean membre

    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
     
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    import org.hibernate.Session;
     
    /**
     * Membre generated by hbm2java
     */
    public class Membre implements java.io.Serializable {
     
    	private Integer id;
    	private String nom;
    	private String prenom;
    	private String speudo;
    	private String email;
    	private String sex;
    	private String naissance;
    	private Date datenaissance;
    	private String motpasse;
     
    	public Membre() {
    	}
     
    	public Membre(String nom, String prenom, String speudo, String email,
    			String sex, String naissance, Date datenaissance, String motpasse) {
    		this.nom = nom;
    		this.prenom = prenom;
    		this.speudo = speudo;
    		this.email = email;
    		this.sex = sex;
    		this.naissance = naissance;
    		this.datenaissance = datenaissance;
    		this.motpasse = motpasse;
    	}
     
     
    	public  String EnregistrerMembre() {
    		Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession();
    		session.beginTransaction();
     
     
            session.beginTransaction();
     
     
    		 Membre membre = new Membre();
    		 membre.setNom(membre.getNom());
    		 membre.setPrenom(membre.getPrenom());
    	     membre.setSpeudo(membre.getSpeudo());
    	     membre.setEmail(membre.getEmail());
    	     membre.setNaissance(membre.getNaissance());
    	     membre.setSex(membre.getSex());
    	     membre.setMotpasse(membre.getMotpasse());
     
     
     
    		 System.out.print("**************************************************super*******************************************");
     
     
     
    	     SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    			try {
    			      Date date = format.parse(membre.getNaissance());
    			      membre.setDatenaissance(date);
    			} catch (java.text.ParseException e) {
    				// TODO Auto-generated catch block
    				System.out.print("************************************************** Merde *******************************************");
    			}
     
    			session.save(membre);
     
    			session.getTransaction().commit();
    			session.close();
    			return null;
    Membre hbm
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 20 f??vr. 2013 10:10:15 by Hibernate Tools 3.4.0.CR1 -->
    <hibernate-mapping>
        <class name="Membre" table="membre" catalog="lingerie_fine">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="increment" />
            </id>
            <property name="nom" type="string">
                <column name="nom" length="25" />
            </property>
            <property name="prenom" type="string">
                <column name="prenom" length="25" />
            </property>
            <property name="speudo" type="string">
                <column name="speudo" length="25" />
            </property>
            <property name="email" type="string">
                <column name="email" length="25" />
            </property>
            <property name="sex" type="string">
                <column name="sex" length="25" />
            </property>
            <property name="naissance" type="string">
                <column name="naissance" length="20" />
            </property>
            <property name="datenaissance" type="date">
                <column name="datenaissance" length="0" />
            </property>
            <property name="motpasse" type="string">
                <column name="motpasse" length="40" />
            </property>
        </class>
    </hibernate-mapping>

  2. #2
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    j'ai lu le tutoriel jboss hibernate 3.5 traduit en francais, et je n'y arrive pas.
    ca fait cinq ans que je n'ai plus programer, si vous m'aider ca serait cool et merci pour votre aide. J'ai lue beaucoup de tutoriel mais ca traiter de jpa et jsf, et non hibernate jsf
    Je suis auto didact

    voici hibernate util
    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
     
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    public class HibernateUtil {
     
        private static final SessionFactory sessionFactory = buildSessionFactory();
     
        private static SessionFactory buildSessionFactory() {
            try {
                // Create the SessionFactory from hibernate.cfg.xml
                return new Configuration().configure().buildSessionFactory();
            }
            catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
     
    }
    le hibernate config
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.password">L099339R</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/lingerie_fine</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            <property name="hibernate.search.autoregister_listeners">false</property>
            <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    		<property name="current_session_context_class">thread</property>
    		<property name="hibernate.show_sql">true</property>
     
            <mapping resource="Membre.hbm.xml" />
        </session-factory>
    </hibernate-configuration>
    et le Membre hbm

    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 21 f??vr. 2013 14:08:23 by Hibernate Tools 3.4.0.CR1 -->
    <hibernate-mapping>
        <class name="Membre" table="membre" catalog="lingerie_fine">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="increment" />
            </id>
            <property name="nom" type="string">
                <column name="nom" length="25" />
            </property>
            <property name="prenom" type="string">
                <column name="prenom" length="25" />
            </property>
            <property name="speudo" type="string">
                <column name="speudo" length="25" />
            </property>
            <property name="email" type="string">
                <column name="email" length="25" />
            </property>
            <property name="sex" type="string">
                <column name="sex" length="25" />
            </property>
            <property name="naissance" type="string">
                <column name="naissance" length="20" />
            </property>
            <property name="datenaissance" type="date">
                <column name="datenaissance" length="0" />
            </property>
            <property name="motpasse" type="string">
                <column name="motpasse" length="40" />
            </property>
        </class>
    </hibernate-mapping>

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	 Membre membre = new Membre();
    		 membre.setNom(membre.getNom());
    		 membre.setPrenom(membre.getPrenom());
    	     membre.setSpeudo(membre.getSpeudo());
    	     membre.setEmail(membre.getEmail());
    	     membre.setNaissance(membre.getNaissance());
    	     membre.setSex(membre.getSex());
    	     membre.setMotpasse(membre.getMotpasse());
    Ce bout de code est totalement faux, ça n'a rien à voir avec Hibernate ou JSF... Tu crées un nouveau membre et tu renseignes ses infos avec lui même, c'est le loup qui se mort la queue là...

    Essai quelques chose comme ça déjà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public  String EnregistrerMembre() {
    		Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession();
    		session.beginTransaction();
     
    			session.save(this);
     
    			session.getTransaction().commit();
    			session.close();
    			return null;
    Romain.

  4. #4
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    La base reste desesperement vide.
    Une question pourquoi le this dans session.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public  String EnregistrerMembre() {
     
     
     
     
            Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession();
    		session.beginTransaction();
     
            session.save(this);
    		session.getTransaction().commit();
    		session.close();
    		return null
    voici ma page html. index.jsp (faces)

    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
     
    <h:form>
    Nom <h:inputText value="#{membre.nom}" required="true"></h:inputText><br>
    Prenom <h:inputText value="#{membre.prenom}" required="true"></h:inputText><br>
    Speudo <h:inputText value="#{membre.speudo}" required="true"></h:inputText><br>
    Email <h:inputText value="#{membre.email}" required="true"></h:inputText><br>
     
    Date de naissance dd/mm/aaaa <h:inputText value="#{membre.datenaissance}" required="true">
    <f:convertDateTime pattern="dd/MM/yyyy"/>
    </h:inputText><br>
     
     
    Mot de passe <h:inputSecret value="#{membre.motpasse}" required="true"></h:inputSecret>
    <h:selectOneRadio value="#{membre.sex}" required="true">
    <f:selectItem itemLabel="homme" itemValue="homme" />
    <f:selectItem itemLabel="femme" itemValue="femme"/>
    </h:selectOneRadio>
    <h:commandButton action="#{membre.EnregistrerMembre}" value="Valider" />
    </h:form>
    Merci et à bientot.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Tchize t'a déjà dit que tu as un problème d'architecture : http://www.developpez.net/forums/d13...e/#post7136087

    Ta classe Membre fait tout ici... Elle est le contrôleur, elle est la présentation, et elle se charge de se sauvegarder elle même dans la base de données...

    Tu dois avoir une classe Membre qui correspond à ton formulaire, un contrôleur qui reçois ta requêtes et le membre qui provient de ton formulaire. Le contrôleur doit ensuite envoyer ce membre à la couche persistance, une classe Membre qui correspond à ton entité hibernate, un dao qui sauvegarde ton entité hibernate. Chaque objet un à un rôle tu peux pas tout mixer ensemble...

    Tu devrais suivre un tutoriel complet avec JSF en y allant pas à pas. Là tu fais beaucoup de chose sans comprendre il me semble...

    Romain.

  6. #6
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Oui, je mélange tout.
    Je vais étudier plus jsf et hibernate.

  7. #7
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Je suis en train d'ecrire un tutoriel sur ça regarde c'est que la partie une voici

  8. #8
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    J'ai lu ton tutoriel mais je ne sais pas comment utiliser maven bienque j'ai telecharger le plugin pour eclipse juno

  9. #9
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Je vais rattacher les sources du projet et ça te servira d'exemple

  10. #10
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Merci pour ton aide symphatique. Cela faisait un baille que je n'avai pas programmer.
    J'ai retrouvé les sources et tout fonctionne.
    voila mon mvc

    classe Membre hibernate
    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
     
    public class Membre implements java.io.Serializable {
     
    	private Integer id;
    	private String nom;
    	private String prenom;
    	private String speudo;
    	private String email;
    	private String sex;
    	private String naissance;
    	private Date datenaissance;
    	private String motpasse;
     
    	public Membre() {
    	}
    class controleur EnregistrerMembre.
    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
     
    public EnregistrerMembre() {
    	}
     
    	public EnregistrerMembre(String nom, String prenom, String speudo, String email,
    			String sex, String naissance, Date datenaissance, String motpasse) {
    		this.nom = nom;
    		this.prenom = prenom;
    		this.speudo = speudo;
    		this.email = email;
    		this.sex = sex;
    		this.naissance = naissance;
    		this.datenaissance = datenaissance;
    		this.motpasse = motpasse;
    	}
     
    	public String ouvaEnregistrerMembre() {
     
     
     
    		Membre membre = new Membre();
     
    		membre.setNom(getNom());
    		membre.setPrenom(getPrenom());
    		membre.setSpeudo(getSpeudo());
    		membre.setEmail(getEmail());
    		membre.setMotpasse(getMotpasse());
    		//membre.setNaissance(getNaissance());
    		membre.setDatenaissance(getDatenaissance());
     
    		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    		session.beginTransaction();
     
    		session.save(membre);
     
    		session.getTransaction().commit();
    		HibernateUtil.getSessionFactory().close();
    Merci pour ton aide. j'ai lu ton tutoriel.
    Premier hic c'est que je ne sais pas utiliser maven.
    Mais je vais réaiseller.

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 26
    Par défaut
    @Philcmoi

    il faut avant tout commencer par le commencement :

    * bien configurer ton environnement ! (normalement c'est bon)

    * architecture physique : organisation des dossiers !

    * architecture logique : organisation des couches !


    y a plusieurs méthodes de travail ! tu peux opter pour cette organisation(un sens professionnel) :


    1) package des beans :

    MembreBeanData
    MembreBeanAction

    (tu peux faire un seul Bean qui regroupe les 2 mais je suis pour la séparation) !



    2) package DaoImpl :

    MembreDaoImpl


    3) package serviceImpl :

    MembreServiceImpl


    4) package objets :

    Membre
    et ton fichier hbm correspondant



    5) package tools

    ton BeanUtil



    6) package validateurs

    EmailValidator (par exemple)


    -------------------------------------------------







    @omarcisses

    je suis plus "configuration xml" que "annotations" mais j'apprécie ton article respect !

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

Discussions similaires

  1. CRUD avec visual web jsf et hibernate
    Par samon dans le forum JSF
    Réponses: 1
    Dernier message: 17/12/2009, 14h45
  2. Réponses: 7
    Dernier message: 24/10/2007, 18h44
  3. jsf et hibernate
    Par Johana dans le forum JSF
    Réponses: 5
    Dernier message: 09/08/2007, 16h12
  4. [JSF-SPRING-HIBERNATE] Freeze . .
    Par gondek dans le forum JSF
    Réponses: 5
    Dernier message: 04/09/2006, 14h04

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