From 108df26aca8f35262ece0d453795aa4c03507ea7 Mon Sep 17 00:00:00 2001 From: trochas Date: Fri, 19 Sep 2025 12:56:39 +0200 Subject: [PATCH] cpt --- data/test.lck | Bin 0 -> 16 bytes data/test.log | 20 ++++++++++++++ data/test.properties | 2 +- data/test.script | 2 +- src/main/java/DAO/ReponseDAO.java | 13 ++++++++++ src/main/java/DAO/SessionDAO.java | 4 +++ src/main/java/jpa/JpaTest.java | 39 +++++++++++++++++++++++++++- src/main/java/metier/Session.java | 21 +++++++++------ target/classes/DAO/ReponseDAO.class | Bin 423 -> 423 bytes target/classes/DAO/SessionDAO.class | Bin 1579 -> 1579 bytes target/classes/jpa/JpaTest.class | Bin 1875 -> 4361 bytes target/classes/metier/Session.class | Bin 1958 -> 2121 bytes 12 files changed, 90 insertions(+), 11 deletions(-) create mode 100644 data/test.lck diff --git a/data/test.lck b/data/test.lck new file mode 100644 index 0000000000000000000000000000000000000000..5e6689b216f5555fda5d0690322c614eb6428b51 GIT binary patch literal 16 XcmeYW4)pQyclKsrV4Rsa_ni~~CP4)P literal 0 HcmV?d00001 diff --git a/data/test.log b/data/test.log index dd542e3..34d4186 100644 --- a/data/test.log +++ b/data/test.log @@ -1,3 +1,23 @@ /*C1*/SET SCHEMA SYSTEM_LOBS INSERT INTO BLOCKS VALUES(0,2147483647,0) COMMIT +/*C2*/SET SCHEMA PUBLIC +create sequence Quizz_SEQ start with 1 increment by 50 +create sequence Reponse_SEQ start with 1 increment by 50 +create table Choix (Choix_Id integer not null, choix varchar(255) array, primary key (Choix_Id)) +create table Question (bonne_reponse integer unique, id integer generated by default as identity (start with 1), primary key (id)) +create table Quizz (id integer not null, id_utilisateur integer, session_codePIN integer, primary key (id)) +create table Reponse (id integer not null, question_id integer unique, Type_reponse varchar(31) not null, reponses varchar(255) array, primary key (id)) +create table ReponseCourte (RC_Id integer not null, value varchar(255), primary key (RC_Id)) +create table Session (codePIN integer generated by default as identity (start with 1), theme varchar(255), primary key (codePIN)) +create table Utilisateur (id integer generated by default as identity (start with 1), email varchar(255) unique, name varchar(255), password varchar(255), primary key (id)) +create table utilisateur_session (session_pin integer not null, utilisateur_id integer not null) +alter table Choix add constraint FK15f4fgmtoco1tg4rra1vualr5 foreign key (Choix_Id) references Reponse +alter table Question add constraint FKht8pe2o5v6sff88mr3pbh40f6 foreign key (bonne_reponse) references Reponse +alter table Quizz add constraint FK3d0s5ih3homovqibbm72mvn2j foreign key (session_codePIN) references Session +alter table Quizz add constraint FKlsvn0pvga68ummfyividlwggh foreign key (id_utilisateur) references Utilisateur +alter table Reponse add constraint FKgdr6si626nqixg8qyfx6s0pjl foreign key (question_id) references Question +alter table ReponseCourte add constraint FKocs5t60ov4kwoom69761ay7qd foreign key (RC_Id) references Reponse +alter table utilisateur_session add constraint FK8x6kccp60a5ki9i4wihglhgqm foreign key (session_pin) references Session +alter table utilisateur_session add constraint FK4f5dgiwf12kd9vrhsc6s4x2pk foreign key (utilisateur_id) references Utilisateur +DISCONNECT diff --git a/data/test.properties b/data/test.properties index bc2283d..a15cc8e 100644 --- a/data/test.properties +++ b/data/test.properties @@ -1,5 +1,5 @@ #HSQL Database Engine 2.7.2 -#Wed Sep 17 12:17:40 CEST 2025 +#Fri Sep 19 12:55:24 CEST 2025 modified=yes tx_timestamp=1 version=2.7.2 diff --git a/data/test.script b/data/test.script index 573c9a0..35af71d 100644 --- a/data/test.script +++ b/data/test.script @@ -1,4 +1,4 @@ -SET DATABASE UNIQUE NAME HSQLDB99572E0E4E +SET DATABASE UNIQUE NAME HSQLDB99619D51D4 SET DATABASE DEFAULT RESULT MEMORY ROWS 0 SET DATABASE EVENT LOG LEVEL 0 SET DATABASE TRANSACTION CONTROL LOCKS diff --git a/src/main/java/DAO/ReponseDAO.java b/src/main/java/DAO/ReponseDAO.java index 59bb473..4a5e4e0 100644 --- a/src/main/java/DAO/ReponseDAO.java +++ b/src/main/java/DAO/ReponseDAO.java @@ -1,5 +1,9 @@ package DAO; +import java.util.List; + +import jakarta.persistence.EntityTransaction; +import jakarta.persistence.Query; import metier.Reponse; public class ReponseDAO extends GenericDAOImpl { @@ -8,4 +12,13 @@ public class ReponseDAO extends GenericDAOImpl { 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 index a7bb970..8440b6c 100644 --- a/src/main/java/DAO/SessionDAO.java +++ b/src/main/java/DAO/SessionDAO.java @@ -4,6 +4,7 @@ package DAO; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Query; import metier.Session; +import metier.Utilisateur; import java.util.List; @@ -13,6 +14,9 @@ public class SessionDAO extends GenericDAOImpl { this.setClass(Session.class); } + + + public List findByTheme(String theme){ EntityTransaction t=em.getTransaction(); t.begin(); diff --git a/src/main/java/jpa/JpaTest.java b/src/main/java/jpa/JpaTest.java index 97e6162..226bcc8 100644 --- a/src/main/java/jpa/JpaTest.java +++ b/src/main/java/jpa/JpaTest.java @@ -5,6 +5,7 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.EntityTransaction; import metier.*; +import java.util.ArrayList; import java.util.List; public class JpaTest { @@ -27,7 +28,9 @@ public class JpaTest { tx.begin(); try { test.create_user_test(); - test.list_utilisateur(); + test.create_session_test(); + //test.list_utilisateur(); + test.list_session(); } catch (Exception e) { e.printStackTrace(); } @@ -49,15 +52,49 @@ public class JpaTest { Utilisateur utilisateur2 = new Utilisateur(); utilisateur2.setName("Rochas"); + manager.persist(utilisateur1); manager.persist(utilisateur2); + } + + } + + private void create_session_test() { + int numUser = manager.createQuery("SELECT u FROM Session u", Session.class).getResultList().size(); + if (numUser == 0) { + //Utilisateur + + + 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); + + + 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(s.getCodePIN() + " " + s.getTheme()); + for(Utilisateur u : s.getUtilisateurs()){ + System.out.println(u.getId() + " " + u.getName() +" "+ u.getEmail()); + } + } + } + + } diff --git a/src/main/java/metier/Session.java b/src/main/java/metier/Session.java index 983ac21..97d7a68 100644 --- a/src/main/java/metier/Session.java +++ b/src/main/java/metier/Session.java @@ -2,14 +2,15 @@ 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 ArrayList quizzs; - private ArrayList utilisateurs; + private List quizzs; + private List utilisateurs; private String theme; public Session(){ @@ -25,29 +26,33 @@ public class Session implements Serializable { return this.codePIN; } - public void setQuizzs(ArrayList quizzs){ + public void setQuizzs(List quizzs){ this.quizzs = quizzs; } @OneToMany(mappedBy="session") - public ArrayList getQuizzs(){ + public List getQuizzs(){ return this.quizzs; } - public void setUtilisateurs(ArrayList utilisateurs){ + public void setUtilisateurs(List utilisateurs){ this.utilisateurs = utilisateurs; } @ManyToMany(mappedBy = "session") - public ArrayList getUtilisateurs() { + public List getUtilisateurs() { return this.utilisateurs; } - private String getTheme(){ + public String getTheme(){ return this.theme; } - private void setTheme(String theme){ + public void setTheme(String theme){ this.theme = theme; } + + public void addUser(Utilisateur user){ + this.utilisateurs.add(user); + } } \ No newline at end of file diff --git a/target/classes/DAO/ReponseDAO.class b/target/classes/DAO/ReponseDAO.class index b5cdd7ae821c0b32534b10a11fdf9dee221873f7..632419629cb148c788e257d91e4287c5eeb276f4 100644 GIT binary patch delta 21 ccmZ3^yqtMM6(c7%0}BHW0~Z7DHq)$ diff --git a/target/classes/DAO/SessionDAO.class b/target/classes/DAO/SessionDAO.class index bc5716ec7c1d0f47cf136a31e79100481decdaa5..32b8cf4d20d3e69ad6f938959c4385b5b03e9684 100644 GIT binary patch delta 59 zcmZ3@vzliEFDoZ60}BHm0~Z7TWHHtzMNuG2j6r}woI!>`faL3c_(WT0O;Nar2qf` delta 59 zcmZ3@vzliEFDoYx0}BH$0~Z6|WHHtzML{4-h(Ulsm_dd?gh7o#ltGU{jKPFKoWYJk Ng29nNYVuCjA^_!G2Yvtm diff --git a/target/classes/jpa/JpaTest.class b/target/classes/jpa/JpaTest.class index b9d6baee6478bd561e737aa2ac365d440f76f195..a338d6461816358cdad806f10f985489a9ef0f15 100644 GIT binary patch literal 4361 zcma)9`Fj)B6+L6i9wCooM-ae)5Cx2}u|b891ZwA^tXPc=gy2|39B@pzZuWGci)|R&OP_O zr)U0i=?MUL-~|;m3L2*JdVF_YPZ^G@BBY>sN+3|qmP z#FRd*+pZqZ8@6LQu8~U{@&24^x-&`Ns7FD4ubDI5?F!o3Uxat&=lZ5z64j20Zj9(5@dne5WAK_(XmlaApy46rmG*YFaV z*D@5!XfPYWW^7S$E0@iuqW@Id$O||Px5(WMQ+afgPjGFP9rvRTs= zBD*#8$WUE6V>y)1QoK~db{T2$Mk;bOK>93uW)WV79V+gs5c=>8m7LYkhr1~~t3b`) z;48(n;(PsANIC4M>A=+T)`Zdt=M4Le>oBPlql;TVpyjrbbaS1{}u1^rc^mVxif z=#JAL=9d1KsjL-meASMdr3tE#DY-crLD(nQ8W*>5<7jGLg~7_wIE10KGi@F0vln5sc zVZ4`Z&@nRHWMa};V)xiqwo-c>6=vTrGW&pncokt)*HKYI9})?Dm>r>-gghfb`4J80 zB;+QBd|*Bq44k;VuExAH7xNNO%AC{{m^VtT*;n^GI&L``r3+4dIQmVLNq zJDoR+?@{p?Xd{eIvr>zMRbfly{aFp4!+8d7x`wT@<;lJ$92E;;Fc@bsJcKW*_yQ|s z;jD%);mZ_8&NxMUONt)K&ILVE5?|5qRVkc0*52T_j69;@Yj~6r=ZF-^)r*5|S4?L$ zToltVP5Ze;XQDiq%xSoU%M^E3pEmleTv~Szn(ic@99Pe|Ov$$P!Lnu&_**yR zNP?o0;qPnsK@p%=JW+0&KNNsJVmq$}qe{@?=qDO}DlM*w{>x4ji1E!p-wBRtfQ8Ymj?yxM^acw=HG~7vRoN#}G->P_C zL93@4k6$x)(wa8nKFxm8g8f#&{!YRD<%Jtq`wn;Mx$%tQv?eTTx{&W#n8&h_iiOhu ztC*K>qs5N9&_$n~$qchXdYbC->oERE1uHTBh4E*$e?E|i!CcO;y}inCRQ%05L>2e% zibyIUsQ8DsV_nOX+lG&qM?8LyvgaNzCtW_(^O+|_-WTz0fa5j%A6b8qSLb7Byuh~_ zH1U3&x3U=_Tu<95nmM-Ax8{fx6W4iO#n)mi34H#G>*_eS>v5hEE<-uoc@Zm;opZQJ z!O(^|tl`;i7VW$`d2Kw8NO!0uG>c7~yIlbdw<&lWy^r9|X#XsBUZCF_(S{D5?P|Tq zx)~d=jFGjV5i9uRm9$vJznig|nA>>o#2TIt*Wz}xqnB&%G$LK1YtZt&jQOId9WPxF#-L_66mKH zjpT5b7x<^jbC{q;KSKoP(aO|(Ucr+%l%!lK=ZAS+;Pu!gN*Gix4Zg16+?D6&@h$b_ zH_VbrVI211{J94?C&FAJ!n{d@Ni`a* z@P~jH@$e@SEm-PGH_=D~IP2kgx;%;Vcuo}YoC)xJn^?Yg3D0;~`21rJd3W7;bhOkJ zv3G|EUP}03xm}PO@&C+QBUT;(&lQ6 m=HwTQvj)G!uRN}6@q7CHgLnT^@cb9f$nVy_;_vt;TK)@9&{z`y delta 820 zcmYk3NmCP16otQ+fk4tsk)jl-5D}F?1}2FEgMtiECP|o_un8?RWWc1Or5o0k%igi{ zA81)5+8y*l^ab8esW-kZ*o2JiPjU%mlxp1=2YI3hl}2x;`7 zDQeRBY}T}V1PE(HDlK<9lP?-xT8U}&*}ojYzyL!Y1{Fjx=)D`VKr-u4zQAU~F8Q8;i@BgkpL^Tq1wanV2>jrLDpsP0HOE}0G3 zn$~t0Dbua!Ez_&`O!Nc&{`fK1-wVM(qnwvT2rVLMrJl2b&e28(K{{o2k&wK7KbL3{ zR?ol1jB`sW7tyK>F)Q=i_+?{@WSL-6EI7D>#-XaNKRNZZ*7K2i|CE2GOu|W-c_l|u zF>?Nh(XY&Gd}3oh>^kN_*#G31r>Cujh+A3_e_C3V4dF6|g9?&(f+}g8)ihCjg1aS0 zh<180x(Ex55R)%XA0rZGfCD+_QzwzW9!_?c&>Aj zDLOSbOK976Drc7KRc%75seN@b5*}&7(hLmVf9+AaTW@0h5MzgsZf0doDWtn}_X6x|SK60~$Nl-mMyyw4cf+lBGk2HCwj)@plbjo*i zUi3g9E|X%P2IPgvi6O>G#tHc$OiIhSU`~uOr~BM>(2P$Y!T%8kaTVx8Ki?$VLVA4i z-%dVch$&W1*Aq^oh_REffJLs|>|KSzhZDyhFg5;&B?Y_pj1}~9)%@Np+A-&+_x@@d XbL;O|LxGbNtoxn~r1%apvkCkFB{PB4 delta 412 zcmX>pu#BJU)W2Q(7#JAL8Js3^#hQxxWF?j*>X(*e=IA>X6(v^sWEPiLGcs@nXQt;R zmXsEyGBT*5tC=`SO;8(MaB?-X?8b*-jJgsU=u%)aHNzMgG%%zlM=^Qmifd?M)xyZ2 zjwv(wC{u!v9;QLn%+iy6nH7X}v1qAg?w{PjQpU(R`9F&mD?bAZgTQ1xR$EqK237`< z$px&jjFOYjvAVL#0{L=4zW8K)wkSrW$z5!&tZG0pb+FiLwkT0;2615E@h~s~Nmd34 y21y{zG&zc0LsTED%yf25R%4(_6Oakg{0ss>olFe&AYBX&3<^M+4JhKszyJWkI%=K(