diff --git a/README.md b/README.md index 86db148..85ae4d4 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,16 @@ -# Template de projet pour le TP JPA UniR - -```mermaid -classDiagram - Utilisateur "*" -- "*" Session - Session "*" -- "1" Quizz - Quizz "1" -- "1..*" Question - Utilisateur "1" -- "*" Quizz - Question "1" -- "1" Reponse - Reponse <|-- ReponseCourte - Reponse <|-- Choix +# TP TAA - class Utilisateur { - -id : int - name : String - getId()int - setId(id:int)void - getName()String - setName(name:String)void +## TP1 - TP2 - } - class Session{ - -id : int - theme : int - getId()int - setId(id:int)void - getTheme()String - setTheme(theme:String)void - } - class Quizz{ - -id : int - getId()int - setId(id:int)void - } - class Reponse{ - - id : int - reponses : ArrayList - getId()int - setId(id:int)void - getReponse()ArrayList - setReponse(reponse:ArrayList )void - } - class Choix{ - - id : int - choix : List - getId()int - setId(id:int)void - getChoix()List - setChoix(choix:List)void - } - class ReponseCourte{ - - id : int - value : String - getId()int - setId(id:int)void - getVlaue()String - setId(id:String)void - } - class Question{ - - id : int - getId()int - setId(id:int)void - } -``` +### Compte rendu +Le compte rendu pour TP1 et TP2 la partie servlet sont dans la branche tp_servlet + +Le compte rendu pour TP2 la partie API Rest est dans la branche tp_rest -Commande pour supprimer: ```rm -rd data/*``` \ No newline at end of file +## Auteurs + +- Tuan Minh VU + +- Thibaut ROCHAS diff --git a/hsqldb-2.7.2.jar b/hsqldb-2.7.2.jar deleted file mode 100644 index 1338739..0000000 Binary files a/hsqldb-2.7.2.jar and /dev/null differ diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 0949edc..0000000 --- a/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - test - testjpa - 0.0.1-SNAPSHOT - - - 11 - 11 - - - - - org.hibernate - hibernate-core - 6.2.7.Final - - - org.slf4j - slf4j-log4j12 - 1.7.30 - - - org.hsqldb - hsqldb - 2.7.2 - - - com.mysql - mysql-connector-j - 8.1.0 - - - diff --git a/run-hsqldb-server.bat b/run-hsqldb-server.bat deleted file mode 100755 index c659c11..0000000 --- a/run-hsqldb-server.bat +++ /dev/null @@ -1,3 +0,0 @@ -mkdir data -cd data -java -cp ..\hsqldb-2.7.2.jar org.hsqldb.Server diff --git a/run-hsqldb-server.sh b/run-hsqldb-server.sh deleted file mode 100755 index 5fc9a89..0000000 --- a/run-hsqldb-server.sh +++ /dev/null @@ -1,4 +0,0 @@ -mvn dependency:copy-dependencies -mkdir data 2> /dev/null -cd data -java -cp ../target/dependency/hsqldb-2.7.2.jar org.hsqldb.Server diff --git a/show-hsqldb.bat b/show-hsqldb.bat deleted file mode 100755 index 1e1c01b..0000000 --- a/show-hsqldb.bat +++ /dev/null @@ -1,2 +0,0 @@ -java -cp hsqldb-2.7.2.jar org.hsqldb.util.DatabaseManagerSwing --driver org.hsqldb.jdbcDriver --url jdbc:hsqldb:hsql://localhost/ --user SA - diff --git a/show-hsqldb.sh b/show-hsqldb.sh deleted file mode 100755 index 7e6fa86..0000000 --- a/show-hsqldb.sh +++ /dev/null @@ -1,2 +0,0 @@ -#mvn dependency:copy-dependencies -java -cp hsqldb-2.7.2.jar org.hsqldb.util.DatabaseManagerSwing --driver org.hsqldb.jdbcDriver --url jdbc:hsqldb:hsql://localhost/ --user SA diff --git a/src/main/java/DAO/Generic.java b/src/main/java/DAO/Generic.java deleted file mode 100644 index 6ba7bb0..0000000 --- a/src/main/java/DAO/Generic.java +++ /dev/null @@ -1,13 +0,0 @@ -package DAO; - -import java.io.Serializable; -import java.util.List; - -public interface Generic { - void create(final T entity); - T findById(final K id); - T update(final T entity); - void delete(final T entity); - void deleteById(final K id); - List findAll(); -} diff --git a/src/main/java/DAO/GenericDAOImpl.java b/src/main/java/DAO/GenericDAOImpl.java deleted file mode 100644 index 20a4776..0000000 --- a/src/main/java/DAO/GenericDAOImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -package DAO; - -import jakarta.persistence.EntityManager; -import jakarta.persistence.EntityTransaction; -import jakarta.persistence.PersistenceException; -import jpa.EntityManagerHelper; - -import java.io.Serializable; -import java.util.List; - -public abstract class GenericDAOImpl implements Generic { - protected EntityManager em; - private Class entityClass; - - public GenericDAOImpl() { - this.em = EntityManagerHelper.getEntityManager(); - } - - //Pour connaitre qu'on travaille avec quelle classe - public void setClass(Class class2){ - this.entityClass= class2; - } - - public List findAll() { - return em.createQuery("select e from " + entityClass.getName() + " as e", entityClass).getResultList(); - } - - //CRUD - public void create(T entity){ - EntityTransaction t = em.getTransaction(); - t.begin(); - em.persist(entity); - t.commit(); - } - - public T findById(K id) { - return em.find(entityClass, id); - } - - public T update(T entity){ - EntityTransaction t = em.getTransaction(); - t.begin(); - T T_sync = em.merge(entity); - t.commit(); - return T_sync; - } - - public void delete(T entity){ - EntityTransaction t = em.getTransaction(); - t.begin(); - em.remove(entity); - t.commit(); - } - - public void deleteById(K id) { - T T_to_be_deleted = em.find(entityClass, id); - em.remove(T_to_be_deleted); - } -} - diff --git a/src/main/java/DAO/QuestionDAO.java b/src/main/java/DAO/QuestionDAO.java deleted file mode 100644 index 73195ec..0000000 --- a/src/main/java/DAO/QuestionDAO.java +++ /dev/null @@ -1,10 +0,0 @@ -package DAO; - -import metier.Question; - -public class QuestionDAO extends GenericDAOImpl { - public QuestionDAO(){ - super(); - this.setClass(Question.class); - } -} diff --git a/src/main/java/DAO/QuizzDAO.java b/src/main/java/DAO/QuizzDAO.java deleted file mode 100644 index 779586d..0000000 --- a/src/main/java/DAO/QuizzDAO.java +++ /dev/null @@ -1,18 +0,0 @@ -package DAO; - -import jakarta.persistence.EntityTransaction; -import metier.Quizz; - -public class QuizzDAO extends GenericDAOImpl{ - public QuizzDAO(){ - super(); - this.setClass(Quizz.class); - } - - public void deleteAllQuiz(){ - EntityTransaction et= em.getTransaction(); - et.begin(); - em.createQuery("delete from Quizz").executeUpdate(); - et.commit(); - } -} diff --git a/src/main/java/DAO/ReponseDAO.java b/src/main/java/DAO/ReponseDAO.java deleted file mode 100644 index 4a5e4e0..0000000 --- a/src/main/java/DAO/ReponseDAO.java +++ /dev/null @@ -1,24 +0,0 @@ -package DAO; - -import java.util.List; - -import jakarta.persistence.EntityTransaction; -import jakarta.persistence.Query; -import metier.Reponse; - -public class ReponseDAO extends GenericDAOImpl { - public ReponseDAO(){ - super(); - this.setClass(Reponse.class); - } - - /*public List getGoodResponses(){ - EntityTransaction t=em.getTransaction(); - t.begin(); - Query query=em.createQuery("select r from Reponse r where r.reponses"); - List lString=query.getResultList(); - t.commit(); - return lString; - }*/ - -} diff --git a/src/main/java/DAO/SessionDAO.java b/src/main/java/DAO/SessionDAO.java deleted file mode 100644 index 8440b6c..0000000 --- a/src/main/java/DAO/SessionDAO.java +++ /dev/null @@ -1,33 +0,0 @@ -package DAO; - - -import jakarta.persistence.EntityTransaction; -import jakarta.persistence.Query; -import metier.Session; -import metier.Utilisateur; - -import java.util.List; - -public class SessionDAO extends GenericDAOImpl { - public SessionDAO() { - super(); - this.setClass(Session.class); - } - - - - - public List findByTheme(String theme){ - EntityTransaction t=em.getTransaction(); - t.begin(); - Query query=em.createQuery("select s from Session s where s.theme=:theme"); - query.setParameter("theme",theme); - List sessions=query.getResultList(); - t.commit(); - if(sessions.size()>0){ - return sessions; - }else{ - return null; - } - } -} diff --git a/src/main/java/DAO/UtilisateurDAO.java b/src/main/java/DAO/UtilisateurDAO.java deleted file mode 100644 index 39bc0e8..0000000 --- a/src/main/java/DAO/UtilisateurDAO.java +++ /dev/null @@ -1,22 +0,0 @@ -package DAO; - -import jakarta.persistence.EntityTransaction; -import jakarta.persistence.Query; -import metier.Utilisateur; - -public class UtilisateurDAO extends GenericDAOImpl{ - public UtilisateurDAO() { - super(); - this.setClass(Utilisateur.class); - } - - public int findByEmail(String email){ - EntityTransaction t=em.getTransaction(); - t.begin(); - Query query=em.createQuery("select u from Utilisateur u where u.email=:email"); - query.setParameter("email",email); - Utilisateur u=(Utilisateur)query.getSingleResult(); - t.commit(); - return u.getId(); - } -} diff --git a/src/main/java/jpa/EntityManagerHelper.java b/src/main/java/jpa/EntityManagerHelper.java deleted file mode 100644 index db7a246..0000000 --- a/src/main/java/jpa/EntityManagerHelper.java +++ /dev/null @@ -1,50 +0,0 @@ -package jpa; - -import jakarta.persistence.EntityManager; -import jakarta.persistence.EntityManagerFactory; -import jakarta.persistence.Persistence; - -public class EntityManagerHelper { - - private static final EntityManagerFactory emf; - private static final ThreadLocal threadLocal; - - static { - emf = Persistence.createEntityManagerFactory("dev"); - threadLocal = new ThreadLocal(); - } - - public static EntityManager getEntityManager() { - EntityManager em = threadLocal.get(); - - if (em == null) { - em = emf.createEntityManager(); - threadLocal.set(em); - } - return em; - } - - public static void closeEntityManager() { - EntityManager em = threadLocal.get(); - if (em != null) { - em.close(); - threadLocal.set(null); - } - } - - public static void closeEntityManagerFactory() { - emf.close(); - } - - public static void beginTransaction() { - getEntityManager().getTransaction().begin(); - } - - public static void rollback() { - getEntityManager().getTransaction().rollback(); - } - - public static void commit() { - getEntityManager().getTransaction().commit(); - } -} \ No newline at end of file diff --git a/src/main/java/jpa/JpaTest.java b/src/main/java/jpa/JpaTest.java deleted file mode 100644 index c96a074..0000000 --- a/src/main/java/jpa/JpaTest.java +++ /dev/null @@ -1,120 +0,0 @@ -package jpa; - - -import jakarta.persistence.EntityManager; -import jakarta.persistence.EntityTransaction; -import metier.*; - -import java.util.ArrayList; -import java.util.List; - -public class JpaTest { - - - private EntityManager manager; - - public JpaTest(EntityManager manager) { - this.manager = manager; - } - /** - * @param args - */ - public static void main(String[] args) { - EntityManager manager = EntityManagerHelper.getEntityManager(); - - JpaTest test = new JpaTest(manager); - - EntityTransaction tx = manager.getTransaction(); - tx.begin(); - try { - //test.create_user_test(); - //test.list_utilisateur(); - test.create_session_test(); - test.list_session(); - } catch (Exception e) { - e.printStackTrace(); - } - tx.commit(); - - - manager.close(); - EntityManagerHelper.closeEntityManagerFactory(); - System.out.println(".. done"); - } - - private void create_user_test() { - int numUser = manager.createQuery("SELECT u FROM Utilisateur u", Utilisateur.class).getResultList().size(); - if (numUser == 0) { - //Utilisateur - Utilisateur utilisateur1 = new Utilisateur(); - utilisateur1.setName("Tibo"); - - Utilisateur utilisateur2 = new Utilisateur(); - utilisateur2.setName("Rochas"); - - - manager.persist(utilisateur1); - manager.persist(utilisateur2); - } - - } - - private void create_session_test() { - int numSession = manager.createQuery("SELECT s FROM Session s", Session.class).getResultList().size(); - if (numSession == 0) { - - Session session1 = new Session(); - //session1.setCodePIN(1703); - session1.setTheme("Inphormatik"); - session1.setQuizzs(new ArrayList<>()); - - //List ulist = manager.createQuery("select user from Utilisateur user").getResultList(); - //session1.setUtilisateurs(ulist); - - session1.setUtilisateurs(new ArrayList<>()); - - Utilisateur utilisateur1 = new Utilisateur(); - utilisateur1.setName("Tibo"); - utilisateur1.setSessions(new ArrayList<>()); - - - Utilisateur utilisateur2 = new Utilisateur(); - utilisateur2.setName("Rochas"); - utilisateur2.setSessions(new ArrayList<>()); - - session1.addUser(utilisateur1); - session1.addUser(utilisateur2); - - Quizz quizz1 = new Quizz(); - session1.addQuizz(quizz1); - - manager.persist(session1); - - } - } - - - private void list_utilisateur(){ - List result_utilisatuer_list= manager.createQuery("select u from Utilisateur u", Utilisateur.class).getResultList(); - for (Utilisateur u : result_utilisatuer_list) { - System.out.println(u.getId() + " " + u.getName() +" "+ u.getEmail()); - } - } - - private void list_session(){ - List result_session_list= manager.createQuery("select s from Session s", Session.class).getResultList(); - for (Session s : result_session_list) { - System.out.println("\n" +s.getCodePIN() + " " + s.getTheme()); - System.out.println("User :" + s.getUtilisateurs().size()); - for(Utilisateur u : s.getUtilisateurs()){ - System.out.println("\t"+u.getId() + " " + u.getName() +" "+ u.getEmail()); - } - System.out.println("Quizzs :" + s.getQuizzs().size()); - for(Quizz q : s.getQuizzs()){ - System.out.println("\t"+q.getId()); - } - } - } - - -} diff --git a/src/main/java/metier/Choix.java b/src/main/java/metier/Choix.java deleted file mode 100644 index 87ea872..0000000 --- a/src/main/java/metier/Choix.java +++ /dev/null @@ -1,25 +0,0 @@ -package metier; - -import java.util.ArrayList; - -import jakarta.persistence.Entity; -import jakarta.persistence.PrimaryKeyJoinColumn; - -@Entity -@PrimaryKeyJoinColumn(name = "Choix_Id") -public class Choix extends Reponse{ - ArrayList choix; - - public Choix() { - super(); - } - - public ArrayList getChoix() { - return this.choix; - } - - public void setChoix(ArrayList choix) { - this.choix = choix; - } - -} diff --git a/src/main/java/metier/Question.java b/src/main/java/metier/Question.java deleted file mode 100644 index f095ab4..0000000 --- a/src/main/java/metier/Question.java +++ /dev/null @@ -1,31 +0,0 @@ -package metier; - -import jakarta.persistence.*; - -import java.io.Serializable; - -@Entity -public class Question implements Serializable { - private int id; - private Reponse reponse; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public int getId() { - return id; - } - public void setId(int id) { - this.id = id; - } - - @OneToOne(cascade = CascadeType.ALL) - @JoinColumn(name ="bonne_reponse", referencedColumnName = "id") - public Reponse getReponse() { - return reponse; - } - - public void setReponse(Reponse reponse) { - this.reponse = reponse; - } - -} diff --git a/src/main/java/metier/Quizz.java b/src/main/java/metier/Quizz.java deleted file mode 100644 index a5bf6bc..0000000 --- a/src/main/java/metier/Quizz.java +++ /dev/null @@ -1,45 +0,0 @@ -package metier; - -import jakarta.persistence.*; - -import java.io.Serializable; - -@Entity -public class Quizz implements Serializable { - private Session session; - private int id; - private Utilisateur utilisateur; - - public Quizz(){ - super(); - } - - @Id - @GeneratedValue - public int getId(){ - return id; - } - - public void setId(Integer id){ - this.id=id; - } - - @ManyToOne - public Session getSession(){ - return session; - } - - public void setSession(Session session){ - this.session=session; - } - - @ManyToOne - @JoinColumn(name="id_utilisateur") - public Utilisateur getUtilisateur(){ - return utilisateur; - } - - public void setUtilisateur(Utilisateur u){ - this.utilisateur=u; - } -} diff --git a/src/main/java/metier/Reponse.java b/src/main/java/metier/Reponse.java deleted file mode 100644 index c507aa4..0000000 --- a/src/main/java/metier/Reponse.java +++ /dev/null @@ -1,45 +0,0 @@ -package metier; - -import java.io.Serializable; -import java.util.ArrayList; - -import jakarta.persistence.*; - -@Entity -@Inheritance(strategy=InheritanceType.JOINED) -@DiscriminatorColumn(name="Type_reponse") -@DiscriminatorValue("Reponse") -public abstract class Reponse implements Serializable { - private int id; - private Question question; - public ArrayList reponses; - - public Reponse(){} - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - @OneToOne - public Question getQuestion(){ - return this.question; - } - - public void setQuestion(Question question){ - this.question=question; - } - - public ArrayList getReponses(){ - return this.reponses; - } - - public void setReponses(ArrayList reponses){ - this.reponses=reponses; - } -} \ No newline at end of file diff --git a/src/main/java/metier/ReponseCourte.java b/src/main/java/metier/ReponseCourte.java deleted file mode 100644 index 227c484..0000000 --- a/src/main/java/metier/ReponseCourte.java +++ /dev/null @@ -1,21 +0,0 @@ -package metier; - -import jakarta.persistence.Entity; -import jakarta.persistence.PrimaryKeyJoinColumn; - -@Entity -@PrimaryKeyJoinColumn(name = "RC_Id") -public class ReponseCourte extends Reponse{ - String value; - - public ReponseCourte(){ - super(); - } - - public void setValue(String value){ - this.value = value; - } - public String getValue(){ - return this.value; - } -} diff --git a/src/main/java/metier/Session.java b/src/main/java/metier/Session.java deleted file mode 100644 index cb181f5..0000000 --- a/src/main/java/metier/Session.java +++ /dev/null @@ -1,64 +0,0 @@ -package metier; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import jakarta.persistence.*; - -@Entity -public class Session implements Serializable { - private int codePIN; - private List quizzs; - private List utilisateurs; - private String theme; - - public Session(){ - } - - public void setCodePIN(int codePIN){ - this.codePIN = codePIN; - } - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public int getCodePIN(){ - return this.codePIN; - } - - public void setQuizzs(List quizzs){ - this.quizzs = quizzs; - } - - @OneToMany(mappedBy="session") - public List getQuizzs(){ - return this.quizzs; - } - - public void setUtilisateurs(List utilisateurs){ - this.utilisateurs = utilisateurs; - } - - @ManyToMany(mappedBy = "sessions") - public List getUtilisateurs() { - return this.utilisateurs; - } - - public String getTheme(){ - return this.theme; - } - - public void setTheme(String theme){ - this.theme = theme; - } - - public void addUser(Utilisateur user){ - this.utilisateurs.add(user); - user.joinSession(this); - } - - public void addQuizz(Quizz quizz){ - this.quizzs.add(quizz); - quizz.setSession(this); - } -} \ No newline at end of file diff --git a/src/main/java/metier/Utilisateur.java b/src/main/java/metier/Utilisateur.java deleted file mode 100644 index affb7f7..0000000 --- a/src/main/java/metier/Utilisateur.java +++ /dev/null @@ -1,81 +0,0 @@ -package metier; - -import jakarta.persistence.*; - -import java.io.Serializable; -import java.util.List; - -@Entity -public class Utilisateur implements Serializable { - - private int id; - private String name; - private List sessions; - private String email; - private String password; - private List quizzs; - - public Utilisateur() {} - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Column(unique=true) - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - @ManyToMany - @JoinTable( - name="utilisateur_session", - joinColumns = @JoinColumn(name="utilisateur_id"), - inverseJoinColumns = @JoinColumn(name = "session_pin") - ) - public List getSessions() { - return sessions; - } - - public void setSessions(List sessions){ - this.sessions = sessions; - } - - public String getPassword() { - return this.password; - } - - public void joinSession(Session session){ - this.sessions.add(session); - } - - public void setPassword(String password) { - this.password = password; - } - - @OneToMany(mappedBy = "utilisateur") - public List getQuizzs() { - return quizzs; - } - - public void setQuizzs(List quizzs) { - this.quizzs = quizzs; - } -} \ No newline at end of file diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml deleted file mode 100644 index 7277b7d..0000000 --- a/src/main/resources/META-INF/persistence.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - org.hibernate.jpa.HibernatePersistenceProvider - - - - - - - - - - - - org.hibernate.jpa.HibernatePersistenceProvider - - - - - - - - - - - - - - org.hibernate.jpa.HibernatePersistenceProvider - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties deleted file mode 100644 index e01f9db..0000000 --- a/src/main/resources/log4j.properties +++ /dev/null @@ -1,15 +0,0 @@ -----------------------------------------------log4j.properties - -### direct log messages to stdout -### -log4j.rootLogger=INFO, stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n - -# Log everything. Good for troubleshooting -log4j.logger.org.hibernate=ERROR - -# Log all JDBC parameters -log4j.logger.org.hibernate.type=ERROR