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

Spring Java Discussion :

crud avec hibernate


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Points : 15
    Points
    15
    Par défaut crud avec hibernate
    Bonjour a tous et toutes,

    Je suis débutante en développement Java/JEE, je travaille sur une application de gestion avec java/jee qui nécessite le développement des méthodes CRUD en reposant sur le modèle MVC2, je utilise comme outils Hibernate, Spring et pour l base de données MySQL. SVP si quelqu'un peux me donner un exemple de base pour l'implémentation des méthodes crud... Merci à vous !

  2. #2
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Bjr,

    CRUD = create, read, update, delete (actions sur la BDD).
    Un petit tour sur google ICI par exemple.

    Si jamais tu as déjà implementé quelque chose et que tu bloque, dis le nous et expose ton problème
    Bon courage ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse Frédéric,

    Enfait j'ai dèja réalisé la couche Dao ainsi que la couche service et je sais qu'en suivant le modèle MVC je dois implémenter la classe Controleur à vrai dire je ne savais pas comment faire la liaison entre les couches et les pages jsp !

  4. #4
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Alors vu que tu utilises Spring regardes tu coté de l'injection de dépendance ici ou dans les cours et tutoriels Java.
    Tu as déjà codé ta couche DAO. Il faut maintenant que tu implémentes ta partie Service puis ta partie Controller.
    Dans ton service il faut injecter ton DAO et dans ton Controller injecter ton service.

    Pour ce qui est des jsp tu utilises aussi spring MVC? si oui tu peux regarder cf ici
    Si tu as un problème spécifique pour la partie Controller/jsp explique le clairement stp??

    ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Salut,
    J'ai fais un tour sur google, bon j'ai réalisé un code tout en respectant le pattern MVC mais j'ai eu des erreurs dont je ne savais pas la cause :/ voila mon code
    Classe bo
    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
    public class Tache {
     
    	private Long id;
    	private String num;
    	private String titre;
     
    	public Tache() {
     
    	}
     
    	public Tache(String num, String titre) {
    		super();
    		this.num = num;
    		this.titre = titre;
    	}
     
        //setters & getters
     
    }
    classe dao :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface TacheDao extends GenericDao<Tache, Serializable> {
     
    	public List<Tache> getTachesByTicket(String pTicket);
     
    }
    classe dao impl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class TacheDaoImpl extends GenericDaoImpl<Tache, Serializable> implements
    		TacheDao {
     
    	public TacheDaoImpl() {
    		super(Tache.class);
    	}
     
    	public List<Tache> getTachesByTicket(String pTicket) {
     
    		return getHibernateTemplate().find("from Tache where num=?", pTicket);
    	}
     
    }
    Classe service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public interface TacheService {
     
    	public void addTache(Tache tch);
     
    	public void updateTache(Tache tch);
     
    	public void deleteTache(Long id);
     
    	public List<Tache> getTachesByTicket(String ticket);
     
    }
    Classe service impl :
    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 TacheServiceImpl implements TacheService {
     
    	private TacheDao tchDao;
     
    	public void updateTache(Tache tch) {
     
    		tchDao.update(tch);
     
    	}
     
    	public void addTache(Tache tch) {
     
    		tchDao.create(tch);
     
    	}
     
    	public void deleteTache(Long id) {
     
    		tchDao.delete(id);
     
    	}
     
    	public List<Tache> getTachesByTicket(String ticket) {
     
    		return tchDao.getTachesByTicket(ticket);
    	}
     
     
     
    }
    Classe 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    public class TacheController {
     
    	private Tache tache = new Tache();
    	private List<Tache> listTaches = new ArrayList();
    	private TacheService tacheService;
     
    	public TacheController() {
    	}
     
    	@PostConstruct
    	public void populate() {
     
    		listTaches = tacheService.getTachesByTicket(null);
     
    	}
     
    	public String doNew() {
     
    		return "/pages/newTache.xhtml";
     
    	}
     
    	public String doCreateTache() {
     
    		tacheService.addTache(tache);
    		listTaches = tacheService.getTachesByTicket(null);
    		return "/pages/listeTaches.xhtml";
    	}
     
    	public Tache getTache() {
    		return tache;
    	}
     
    	public void setTache(Tache tache) {
    		this.tache = tache;
    	}
     
    	public List<Tache> getListTaches() {
    		return listTaches;
    	}
     
    	public void setListTaches(List<Tache> listTaches) {
    		this.listTaches = listTaches;
    	}
     
    	public TacheService getTacheService() {
    		return tacheService;
    	}
     
    	public void setTacheService(TacheService tacheService) {
    		this.tacheService = tacheService;
    	}
     
    }
    Concernant les pages view j'ai deux pages, la page newTache.xhtml :
    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
    <h:body>
     
    	<h:form>
    		<p:panel id="panel" header="Nouvelle Tâche"
    			style="margin-bottom:10px;">
     
    			<h:panelGrid columns="2" cellpadding="4">
     
    				<h:outputLabel value="Numéro de ticket" style="font-weight:bold" />
    				<p:inputText id="num" value="#{tacheController.tache.num}" />
     
    				<h:outputLabel value="Titre" style="font-weight:bold" />
    				<p:inputText id="titre" value="#{bookController.tache.titre}" />
     
     
    				<f:facet name="footer">
    					<h:panelGroup style="display:block; text-align:center">
    						<p:commandButton value="Envoyer"
    							action="#{tacheController.doCreateTache}" ajax="false" />
    					</h:panelGroup>
    				</f:facet>
    			</h:panelGrid>
    		</p:panel>
     
    	</h:form>
    </h:body>
    et la page listeTaches.xhtml :
    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
    <h:body>
    	<h1>Gestion des tâches</h1>
    	<hr />
     
    	<h:form>
     
    		<p:dataTable id="dataTable" var="it"
    			value="#{tacheController.listTaches}" paginator="true" rows="10"
    			paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks}  {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    			rowsPerPageTemplate="5,10,15">
     
     
    			<f:facet name="header">  
                Liste des taches
            </f:facet>
    			<p:column>
    				<f:facet name="header">
    					<h:outputText value="Numéro de ticket" />
    				</f:facet>
    				<h:outputText value="#{it.num}" />
    			</p:column>
    			<p:column>
    				<f:facet name="header">
    					<h:outputText value="Titre" />
    				</f:facet>
    				<h:outputText value="#{it.titre}" />
    			</p:column>
     
    		</p:dataTable>
     
     
    	</h:form>
     
    	<h:form>
    		<h:commandLink action="#{tacheController.doNew}">
    		</h:commandLink>
    	</h:form>
     
    </h:body>
    et pour applicationContext :
    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
    <bean id="dataSource"
    		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName">
    			<value>com.mysql.jdbc.Driver</value>
    		</property>
    		<property name="url">
    			<value>jdbc:mysql://localhost/exemplee</value>
    		</property>
    		<property name="username">
    			<value>root</value>
    		</property>
    		<property name="password">
    			<value></value>
    		</property>
    	</bean>
     
     
    	<bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource">
    			<ref local="dataSource" />
    		</property>
     
    		<property name="mappingResources">
    			<list>
    				<value>com/exemple/dao/hbm/Tache.hbm.xml</value>
    			</list>
    		</property>
     
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">
    					org.hibernate.dialect.MySQL5Dialect
    				</prop>
    				<prop key="hibernate.hbm2ddl.auto">update</prop>
    				<prop key="hibernate.current_session_context_class">
    					thread
    				</prop>
    				<prop key="hibernate.transaction.factory_class">
    					org.hibernate.transaction.JDBCTransactionFactory
    				</prop>
    			</props>
     
    		</property>
     
     
    	</bean>
     
     
    	<bean id="transactionManager"
    		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory">
    			<ref local="sessionFactory" />
    		</property>
    	</bean>
     
     
    	<bean id="tacheDao" class="com.exemple.dao.impl.TacheDaoImpl">
    		<property name="sessionFactory" ref="sessionFactory"></property>
    	</bean>
    	<bean id="tacheService" class="com.exemple.service.impl.TacheServiceImpl">
    		<property name="tacheDao" ref="tacheDao"></property>
    	</bean>
    Voila mon fichier de configuration de jsf :
    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
    <application>
    			<el-resolver>
    				org.springframework.web.jsf.el.SpringBeanFacesELResolver
    			</el-resolver>
    		</application>
     
     
     <managed-bean>
     
      <managed-bean-name>tacheController</managed-bean-name>
      <managed-bean-class>com.exemple.controller.TacheController</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
      <managed-property>
       <property-name>tacheService</property-name>
       <property-class>com.exemple.service.TacheService</property-class>
       <value>#{tacheService}</value>
      </managed-property>
     </managed-bean>
    et voila le web.xml de l'application :
    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
    <display-name>ExampleJSF2</display-name>
    	 <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>
                org.springframework.web.context.ContextLoaderListener
            </listener-class>
        </listener>
        <listener>
            <listener-class>
                org.springframework.web.context.request.RequestContextListener
            </listener-class>
        </listener>
    		<context-param>
    		<param-name>primefaces.THEME</param-name>
    		<param-value>sunny</param-value>
    	</context-param>
     
        <filter>
            <filter-name>springSecurityFilterChain</filter-name>
            <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        </filter>
     
        <filter-mapping>
            <filter-name>springSecurityFilterChain</filter-name>
            <url-pattern>/*</url-pattern>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>REQUEST</dispatcher>
        </filter-mapping>
     
    	<servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.faces</url-pattern>
    	</servlet-mapping>
     
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.jsf</url-pattern>
    	</servlet-mapping>
     
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.xhtml</url-pattern>
    	</servlet-mapping>
    Quand j'exécute il me donne l'erreur 404. SVP aidez moi

  6. #6
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Ok pour t'aider mais utilises la balise code, isole ton problème car la tu nous a mis ta webapp en entière. Test sans que ton appli tourne avec une simple servlet et un forward....
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Tu peux me donner un exemple qui fonctionne ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/03/2010, 21h29
  2. Réponses: 0
    Dernier message: 27/03/2010, 21h25
  3. CRUD avec visual web jsf et hibernate
    Par samon dans le forum JSF
    Réponses: 1
    Dernier message: 17/12/2009, 15h45
  4. Application CRUD avec Hibernate
    Par javalhoussain dans le forum JSF
    Réponses: 0
    Dernier message: 13/07/2009, 15h44

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