28 Jan2016
Entity User
Objectifs :
- Création d'une entité.
- Création de fichier de configuration Hibernate (hinernate.cfg.xml).
- Utilisation des annotations (Entity, Table, Id, GeneratedValue, Column ...).
- Création des CRUD.
Énoncé :
Soit la classe suivante :
- Créer l'entité User dans le package "ma.exelib.projet.beans".
- Créer le fichier de configuration Hibernate dans le package "ma.exelib.projet.config".
- Créer le classe HibernateUtil permettant de créer une SessionFactory dans le package "ma.exelib.projet.util".
- Créer l’interface générique IDao dans le package "ma.exelib.projet.dao" :
- Créer la classe UserService dans le package "ma.exelib.projet.service" :
6. Créer une classe de test pour tester les crud.
Structure du projet :
Entity User :
package ma.exelib.projet.beans; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; @Entity @Table(name = "Utilisateur") public class User { @Id @GeneratedValue private int id; @Column(name = "nomUser") private String nom; private String prenom; @Temporal(javax.persistence.TemporalType.DATE) private Date dateNaissance; private double salaire; public User() { } public User(String nom, String prenom, Date dateNaissance, double salaire) { this.nom = nom; this.prenom = prenom; this.dateNaissance = dateNaissance; this.salaire = salaire; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public Date getDateNaissance() { return dateNaissance; } public void setDateNaissance(Date dateNaissance) { this.dateNaissance = dateNaissance; } public double getSalaire() { return salaire; } public void setSalaire(double salaire) { this.salaire = salaire; } }
Le fichier de configuration Hibernate :
<?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.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/h1</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <mapping class="ma.exelib.projet.beans.User"/> </session-factory> </hibernate-configuration>
La classe HibernateUtil :
package ma.exelib.projet.util; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.SessionFactory; /** * Hibernate Utility class with a convenient method to get Session Factory * object. * * @author lachgar */ public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from standard (hibernate.cfg.xml) // config file. sessionFactory = new AnnotationConfiguration().configure("ma/exelib/projet/config/hibernate.cfg.xml").buildSessionFactory(); } catch (Throwable ex) { // Log the exception. System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } }
L’interface IDao :
package ma.exelib.projet.dao; import java.util.List; /** * * @author lachgar */ public interface IDao <T> { boolean create (T o); boolean update (T o); boolean delete (T o); T findById(int id); List<T> findAll(); }
La Classe UserService :
package ma.exelib.projet.service; import java.util.List; import ma.exelib.projet.beans.User; import ma.exelib.projet.dao.IDao; import ma.exelib.projet.util.HibernateUtil; import org.hibernate.Session; /** * * @author lachgar */ public class UserService implements IDao<User>{ @Override public boolean create(User o) { Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.save(o); session.getTransaction().commit(); session.close(); return true; } @Override public boolean update(User o) { Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.update(o); session.getTransaction().commit(); session.close(); return true; } @Override public boolean delete(User o) { Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.delete(o); session.getTransaction().commit(); session.close(); return true; } @Override public User findById(int id) { User u = null; Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); u = (User) session.get(User.class, id); session.getTransaction().commit(); session.close(); return u; } @Override public List<User> findAll() { List<User> users = null; Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); users = session.createQuery("from User").list(); session.getTransaction().commit(); session.close(); return users; } }
La classe de Test :
package h1; import java.util.Date; import ma.exelib.projet.beans.User; import ma.exelib.projet.service.UserService; /** * * @author lachgar */ public class Test { public static void main(String[] args) { UserService us = new UserService(); //Création de trois utilisateurs us.create(new User("safi", "said", new Date("1988/09/04"), 10000.00)); us.create(new User("rami", "wafa", new Date("2009/09/04"), 20000.00)); us.create(new User("alami", "safa", new Date("198/09/03"), 6000.00)); //Liste des utilisateurs for(User u : us.findAll()) System.out.println(u.getNom()); //Supprimer l'utilisateur dont id = 2 us.delete(us.findById(2)); //Modifier les informations de l'utilisateur dont id = 4 User uu = us.findById(4); uu.setNom("Rami"); uu.setNom("manal"); us.update(uu); } }
Sélectionnez le fichier à afficher.
|