This commit is contained in:
trochas
2025-09-19 12:56:39 +02:00
parent f1a2f78ead
commit 108df26aca
12 changed files with 90 additions and 11 deletions

BIN
data/test.lck Normal file

Binary file not shown.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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<Integer, Reponse> {
@@ -8,4 +12,13 @@ public class ReponseDAO extends GenericDAOImpl<Integer, Reponse> {
this.setClass(Reponse.class);
}
/*public List<String> getGoodResponses(){
EntityTransaction t=em.getTransaction();
t.begin();
Query query=em.createQuery("select r from Reponse r where r.reponses");
List<String> lString=query.getResultList();
t.commit();
return lString;
}*/
}

View File

@@ -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<Integer, Session> {
this.setClass(Session.class);
}
public List<Session> findByTheme(String theme){
EntityTransaction t=em.getTransaction();
t.begin();

View File

@@ -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<Utilisateur> ulist = manager.createQuery("select user from Utilisateur user").getResultList();
session1.setUtilisateurs(ulist);
manager.persist(session1);
}
}
private void list_utilisateur(){
List<Utilisateur> 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<Session> 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());
}
}
}
}

View File

@@ -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<Quizz> quizzs;
private ArrayList<Utilisateur> utilisateurs;
private List<Quizz> quizzs;
private List<Utilisateur> utilisateurs;
private String theme;
public Session(){
@@ -25,29 +26,33 @@ public class Session implements Serializable {
return this.codePIN;
}
public void setQuizzs(ArrayList<Quizz> quizzs){
public void setQuizzs(List<Quizz> quizzs){
this.quizzs = quizzs;
}
@OneToMany(mappedBy="session")
public ArrayList<Quizz> getQuizzs(){
public List<Quizz> getQuizzs(){
return this.quizzs;
}
public void setUtilisateurs(ArrayList<Utilisateur> utilisateurs){
public void setUtilisateurs(List<Utilisateur> utilisateurs){
this.utilisateurs = utilisateurs;
}
@ManyToMany(mappedBy = "session")
public ArrayList<Utilisateur> getUtilisateurs() {
public List<Utilisateur> 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);
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.