Bonjour,
je fais un projet web en j2ee JSF + primefaces 3.5
premièrement je fais le mapping de la base données et les tables avec hibernate
je crée le fichier hibernate.cfg.xml et hibernate.reveng.xml aussi je cree le fichier hibernate mapping files et pojos from databases et hibernate util
j'ai une base de données nommée base et un table nommé compte
je crée une interface java nommée compteDao et des méthodes abstraites aussi je crée un autre fichier java class pour implémentation des méthodes abstraites et ils fonctionnent correctement.
Fichier compteDao
1 2 3 4 5 6 7 8 9 10 11 12 13
|
package com.projet.dao;
import com.projet.compte.Compte;
import java.util.List;
public interface compteDao {
public void inserer(Compte compte);
public void mettre_ajour(Compte compte);
public void supprimer(Compte compte);
public Compte rechercherCodeemp(Integer id);
public List<Compte> rechercher();
} |
Fichier compteDaoImpl
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
|
package com.projet.dao.impl;
import com.projet.compte.Compte;
import com.projet.dao.compteDao;
import com.projet.util.HibernateUtil;
import java.util.List;
import org.hibernate.Session;
public class compteDaoImpl implements compteDao{
@Override
public void inserer(Compte compte) {
Session session = HibernateUtil.getSessionFactory().openSession();
try{
session.beginTransaction();
session.save(compte);
session.beginTransaction().commit();
}catch(Exception e){
System.out.println("errreur insertion"+e.getMessage());
session.beginTransaction().rollback();
}
}
@Override
public void mettre_ajour(Compte compte) {
Session session = HibernateUtil.getSessionFactory().openSession();
try{
session.beginTransaction();
session.update(compte);
session.beginTransaction().commit();
}catch(Exception e){
System.out.println("errreur mise a jour"+e.getMessage());
session.beginTransaction().rollback();
} }
@Override
public void supprimer(Compte compte) {
Session session = HibernateUtil.getSessionFactory().openSession();
try{
session.beginTransaction();
session.delete(compte);
session.beginTransaction().commit();
}catch(Exception e){
System.out.println("errreur suppression"+e.getMessage());
session.beginTransaction().rollback();
} }
@Override
public Compte rechercherCodeemp(Integer id) {
Session session = HibernateUtil.getSessionFactory().openSession();
return (Compte) session.load(Compte.class, id);
}
@Override
public List<Compte> rechercher() {
Session session = HibernateUtil.getSessionFactory().openSession();
return session.createQuery("from Compte ").list();
}
} |
deuxièmement je crée un fichier comptebean contient deux attributs
avec deux méthodes pour l'insertion dans le base de données
Fichier cmptebean
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
|
package com.projet.bean;
import com.projet.compte.Compte;
import com.projet.dao.compteDao;
import com.projet.dao.impl.compteDaoImpl;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
@ManagedBean(name = "CompteBean")
@SessionScoped
public class CompteBean {
private Compte compte;
private List<Compte> comptes;
public CompteBean() {
compte = new Compte();
}
public void preparer (ActionEvent actionEvent){
compte = new Compte();
}
public void inserer(ActionEvent actionEvent)
{
compteDao cmpt= new compteDaoImpl();
cmpt.inserer(compte);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("ajout réussi !!!"));
compte = new Compte();
}
public Compte getCompte() {
return compte;
}
public void setCompte(Compte compte) {
this.compte = compte;
}
public List<Compte> getComptes() {
compteDao comptedao = new compteDaoImpl();
comptes = comptedao.rechercher();
return comptes;
}
} |
dans le fichier index.xhtml
je crée une datatable pour l’affichage et il fonctionne correctement juste je trouve un problème pour l'insertion directement dans la base de données et l'affichage instantanée dans la datatable
fichier index.xhtml
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
| <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Facelet Title</title>
<link rel="Stylesheet" type="text/css" href="ressources/css/style.css"/>
</h:head>
<h:body>
<!-- Insertion d'un bouton -->
<h:form>
<p:commandButton value=" Nouveau utilisateur" image="icon-add" actionListener="#{CompteBean.preparer(actionEvent)}"
oncomplete="user.show();"/>
</h:form><br/>
<!-- Insertion d'un tableau contient l'affichage des tuples a partir base de données-->
<h:form id="frmcomptes">
<p:dataTable id="table" var="compte" value="#{CompteBean.comptes}" >
<p:column headerText="Id" >
<h:outputText value="#{compte.id}" />
</p:column>
<p:column headerText="Nom" >
<h:outputText value="#{compte.nom}" />
</p:column>
<p:column headerText="Prenom" >
<h:outputText value="#{compte.prenom}" />
</p:column>
<p:column headerText="CIN" >
<h:outputText value="#{compte.cin}" />
</p:column>
<p:column style="width:10%; text-align: center;">
<p:commandButton update=":frmcomptes" oncomplete="carDialog.show()" image="icon-edit" title="Editer" />
<p:commandButton update=":frmcomptes" oncomplete="carDialog.show()" image="icon-supp" title="Supprimer"/>
</p:column>
</p:dataTable>
</h:form>
<!-- affichage d'un formulaire pour l'ajout d'un nouveau utilisateur-->
<h:form id="FrmNewuser">
<p:dialog header="Nouveau utilisateur" widgetVar="user" resizable="false" id="user" modal="true">
<p:growl id="growl" showDetail="true" sticky="true" />
<h:panelGrid id="newuser" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputText value="Nom :" />
<h:inputText value="#{CompteBean.compte.nom}" style="font-weight:bold; width: 300px;"/>
<h:outputText value="Prenom :" />
<h:inputText value="#{CompteBean.compte.prenom}" style="font-weight:bold; width: 300px;"/>
<h:outputText value="CIN :" />
<h:inputText value="#{CompteBean.compte.cin}" style="font-weight:bold; width: 300px;"/>
</h:panelGrid>
<p:separator />
<p:commandButton update=":frmcomptes,growl,table" oncomplete="user.hide()" actionListener="#{CompteBean.inserer(actionEvent)}" image="icon-save" value=" sauvegarder" />
<p:commandButton update=":frmcomptes" oncomplete="user.hide()" image="icon-cancel" value=" Annuler" />
</p:dialog>
</h:form>
</h:body>
</html> |
S'il est possible de m'aider
Partager