-
-
\ No newline at end of file
diff --git a/.idea/ProjetGenieLogicielLoto.iml b/ProjetGenieLogicielLoto.iml
similarity index 62%
rename from .idea/ProjetGenieLogicielLoto.iml
rename to ProjetGenieLogicielLoto.iml
index a2135cc..25b7aca 100644
--- a/.idea/ProjetGenieLogicielLoto.iml
+++ b/ProjetGenieLogicielLoto.iml
@@ -1,6 +1,6 @@
-
+
@@ -12,21 +12,13 @@
+
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/README.md b/README.md
index 1a92417..ae82209 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# ProjetGenieLogicielLoto 
+# ProjetGenieLogicielLoto
## Introduction
*Ce projet permet de valider les connaissances en matière de Génie Logiciel dans le cadre du programme au sein de Polytech Marseille en Informatique. Ce projet consiste à créer un logiciel qui a pour objectif de réduire les pertes financières lorsque l'on joue à des jeux de hasard, en l'occurence au Loto de la [Française Des Jeux](https://fdj.fr) en respectant le bon déroulement d'un projet.*
diff --git a/apiguardian-api-1.1.0.jar b/apiguardian-api-1.1.0.jar
deleted file mode 100644
index e6fcead..0000000
Binary files a/apiguardian-api-1.1.0.jar and /dev/null differ
diff --git a/junit-jupiter-5.5.2.jar b/junit-jupiter-5.5.2.jar
deleted file mode 100644
index 4fbff13..0000000
Binary files a/junit-jupiter-5.5.2.jar and /dev/null differ
diff --git a/junit-jupiter-api-5.5.2.jar b/junit-jupiter-api-5.5.2.jar
deleted file mode 100644
index a025d98..0000000
Binary files a/junit-jupiter-api-5.5.2.jar and /dev/null differ
diff --git a/junit-jupiter-engine-5.5.2.jar b/junit-jupiter-engine-5.5.2.jar
deleted file mode 100644
index f09e23c..0000000
Binary files a/junit-jupiter-engine-5.5.2.jar and /dev/null differ
diff --git a/junit-jupiter-params-5.5.2.jar b/junit-jupiter-params-5.5.2.jar
deleted file mode 100644
index 00dabf1..0000000
Binary files a/junit-jupiter-params-5.5.2.jar and /dev/null differ
diff --git a/junit-platform-commons-1.5.2.jar b/junit-platform-commons-1.5.2.jar
deleted file mode 100644
index 3a09812..0000000
Binary files a/junit-platform-commons-1.5.2.jar and /dev/null differ
diff --git a/junit-platform-engine-1.5.2.jar b/junit-platform-engine-1.5.2.jar
deleted file mode 100644
index de86ab7..0000000
Binary files a/junit-platform-engine-1.5.2.jar and /dev/null differ
diff --git a/opentest4j-1.2.0.jar b/opentest4j-1.2.0.jar
deleted file mode 100644
index d500636..0000000
Binary files a/opentest4j-1.2.0.jar and /dev/null differ
diff --git a/pom.xml b/pom.xml
index 396b357..3abf41e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,12 +67,6 @@
slf4j-simple1.7.25
-
- org.junit.jupiter
- junit-jupiter-api
- 5.7.0
- compile
-
diff --git a/src/main/java/fr/myny/data/DataCsv.java b/src/main/java/fr/myny/data/DataCsv.java
deleted file mode 100644
index 3bb19ef..0000000
--- a/src/main/java/fr/myny/data/DataCsv.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package fr.myny.data;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-/**
- * Classe d'extraction de fichier Zip
- */
-public class DataCsv {
-
- protected String destination;
-
- /**
- * Constructeur par defaut
- * @throws IOException
- */
- public DataCsv() throws IOException {
- this.destination = "src/main/resources/Download";
- ImportData imp = new ImportData("https://www.fdj.fr/jeux-de-tirage/loto/statistiques", this.destination);
-
- }
-
- /**
- * Constructeur avec parametre
- * @param s repertoire de destination
- * @throws IOException
- */
- public DataCsv(String s) throws IOException {
- this.destination = s;
- ImportData imp = new ImportData("https://www.fdj.fr/jeux-de-tirage/loto/statistiques", this.destination);
-
- for (String name : imp.tabNameZip) {
- name = this.destination.concat(name);
- getCsv(name);
- }
- }
-
- /**
- * La methode de recuperation dun fichier csv
- * @param fileZip : nom suivit du chemin du fichier zip
- */
- private void getCsv(String fileZip) throws IOException{
- File desDir = new File(destination);
- byte[] buffer = new byte[1024];
- ZipInputStream zis = new ZipInputStream(new FileInputStream(fileZip));
- ZipEntry zipEntry = zis.getNextEntry();
- while (zipEntry != null){
- File newFile = newFile(desDir, zipEntry);
- if (zipEntry.isDirectory()){
- if (!newFile.isDirectory() && !newFile.mkdirs()){
- throw new IOException("Failed to create directory " + newFile);
- }
- } else{
- File parent = newFile.getParentFile();
- if (!parent.isDirectory() && !parent.mkdirs()) {
- throw new IOException("Failed to create directory " + parent);
- }
-
- FileOutputStream fos = new FileOutputStream(newFile);
- int len;
- while ((len = zis.read(buffer)) > 0){
- fos.write(buffer, 0, len);
- }
- fos.close();
- }
- zipEntry = zis.getNextEntry();
- }
- zis.closeEntry();
- zis.close();
- }
-
- /**
- * Methode verifiant si l extraction a bien ete faite
- * @param destinationDir : chemin de destination
- * @param zipEntry : zip cible
- */
- public File newFile(File destinationDir, ZipEntry zipEntry) throws IOException{
- File destFile = new File(destinationDir, zipEntry.getName());
-
- String destDirPath = destinationDir.getCanonicalPath();
- String destFilePath = destFile.getCanonicalPath();
-
- if (!destFilePath.startsWith(destDirPath + File.separator)){
- throw new IOException("Entry is outside of the target dir: " + zipEntry.getName());
- }
-
- return destFile;
- }
-}
diff --git a/src/main/java/fr/myny/data/ImportData.java b/src/main/java/fr/myny/data/ImportData.java
index 803c1b0..2b29f83 100644
--- a/src/main/java/fr/myny/data/ImportData.java
+++ b/src/main/java/fr/myny/data/ImportData.java
@@ -1,103 +1,8 @@
package fr.myny.data;
-import java.io.*;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-
public class ImportData {
-
- protected String url;
- protected String repDes;
- public ArrayList tabNameZip;
-
- /**
- * Constructeur par defaut
- */
- ImportData(){
- this.url = "https://www.fdj.fr/jeux-de-tirage/loto/statistiques";
- this.repDes = "src/main/resources/Download/";
- tabNameZip = new ArrayList<>();
- DownloadCsvZip();
+ ImportData()
+ {
+ System.out.println("Creation d'un ImportData");
}
-
- /**
- * Constructeur avec parametres
- * @param url contient l'URL dou recuperer les fichiers csv
- * @param des respertoire de destination
- */
- public ImportData(String url, String des){
- this.url=url;
- this.repDes = des;
- tabNameZip = new ArrayList<>();
- DownloadCsvZip();
- }
-
- /**
- * Méthode permettant de tester si l'URL est valide
- * @return true si l'URL est valide si non false
- */
- private boolean UrlExist() {
- try {
- URL site = new URL(url);
- try {
- site.openStream();
- return true;
- } catch (IOException e) {
- return false;
- }
- } catch (MalformedURLException e) {
- return false;
- }
- }
-
- /**
- * Méthode permettant de télécharger un fichier à partir d'un URL
- */
- public void DownloadCsvZip() {
- if (UrlExist()) {
- BufferedReader in = null;
-
- try {
- URL site = new URL(url);
- in = new BufferedReader(new InputStreamReader(site.openStream()));
-
- String test = "loto_";
- String nameZip;
- String urlZipLink;
- while ((urlZipLink = in.readLine()) != null) {
- if (urlZipLink.length() > 128) {
- if (test.equals(urlZipLink.substring(50, 55))) {
- nameZip = urlZipLink.substring(50,65);
- tabNameZip.add(nameZip);
- urlZipLink = urlZipLink.substring(13,65);
- try (BufferedInputStream bis = new BufferedInputStream(new URL(urlZipLink).openStream());
- FileOutputStream fos = new FileOutputStream(repDes + nameZip)) {
- byte data[] = new byte[1024];
- int byteContent;
- while ((byteContent = bis.read(data, 0, 1024)) != -1) {
- fos.write(data, 0, byteContent);
- }
- } catch (IOException e) {
- e.printStackTrace(System.out);
- }
- }
- }
- }
- in.close();
- } catch (IOException e) {
- System.out.println("Error URL can't open : " + e);
- }
- finally {
- try {
- in.close();
- } catch (IOException e) {
- System.out.println("Error close buffer : " + e);
- }
- }
- }
- else
- System.out.println("Web sit don't exist");
- }
-
}
diff --git a/src/main/java/fr/myny/database/DataBase.java b/src/main/java/fr/myny/database/DataBase.java
index 385df2f..2ed1acc 100644
--- a/src/main/java/fr/myny/database/DataBase.java
+++ b/src/main/java/fr/myny/database/DataBase.java
@@ -1,629 +1,4 @@
package fr.myny.database;
-import java.sql.*;
-import java.util.*;
-import java.io.*;
-
-/**
- * La classe DataBase qui soccupera de la base de donnees
- */
-
public class DataBase {
- //public static String url="jdbc:mariadb://vachot.fr:3306?user=mynynicolas&password=Bw0po64*";
- public static final int NBCOL =25;//le nombre de coldu fichier csv
- public static final String url="jdbc:mariadb://phpmyadmin.vachot.fr:3306?db=myny&user=mynynicolas&password=Bw0po64*";//l'acces à la db
- public Connection conn;//la connexion a la db
-
- /**
- * La methode de connection
- * @return conn la connection a la db
- */
- public Connection getConnection() {
- conn = null;
- try {
- conn = DriverManager.getConnection(url);
- //conn = DriverManager.getConnection("jdbc:mariadb://vachot.fr:3306?user=mynynicolas&password=Bw0po64*");
- //conn = DriverManager.getConnection("jdbc:mariadb://phpmyadmin.vachot.fr:3306/myny?user=mynynicolas&password=Bw0po64*");
- //conn = DriverManager.getConnection("jdbc:mariadb:../../../../../../test.db");
- if(conn!=null) {
- System.out.println("Connecte a la db");
- System.out.println(conn);
- }
- }catch(SQLException e) {
- System.out.println("getConnection on a des pb:" + e.getMessage());
- }
- return conn;
- }
-
- /**
- * La methode de creation de la table
- *
stmt Statement la variable pour creer la declaration
- *
sql String la requete
- * @return res, int le resultat de la requete (nb de ligne affectees)
- */
- public int createTable() {
- int res=-1;
- Statement stmt;
- String sql="CREATE TABLE IF NOT EXISTS myny.Test_Table ("+ //declaration de la table, de ses colonnes et de leur type et leur taille (on aurai pu ajouter des param supplementaires)
- " annee_numero_de_tirage INTEGER,"+ //1 long
- " jour_de_tirage VARCHAR(10),"+ //2 String
- " date_de_tirage DATE,"+ //3 String
- " date_de_forclusion DATE,"+ //4 String
- " boule_1 TINYINT,"+ //5 long
- " boule_2 TINYINT,"+ //6 long
- " boule_3 TINYINT,"+ //7 long
- " boule_4 TINYINT,"+ //8 long
- " boule_5 TINYINT,"+ //9 long
- " numero_chance TINYINT,"+ //10 long
- " combinaison_gagnante_en_ordre_croissant varchar(20),"+//11 String
- " nombre_de_gagnant_au_rang1 INTEGER,"+ //12 long
- " rapport_du_rang1 float(53),"+ //13 double
- " nombre_de_gagnant_au_rang2 INTEGER,"+ //14 long
- " rapport_du_rang2 float(53),"+ //15 double
- " nombre_de_gagnant_au_rang3 INTEGER,"+ //16 long
- " rapport_du_rang3 float(53),"+ //17 double
- " nombre_de_gagnant_au_rang4 INTEGER,"+ //18 long
- " rapport_du_rang4 float(53),"+ //19 double
- " nombre_de_gagnant_au_rang5 INTEGER,"+ //20 long
- " rapport_du_rang5 float(53),"+ //21 double
- " nombre_de_gagnant_au_rang6 INTEGER,"+ //22 long
- " rapport_du_rang6 float(53),"+ //23 double
- " numero_jokerplus INTEGER,"+ //24 long
- " devise VARCHAR(10));"; //25 String
- //System.out.println(sql);
- try {
- if(conn==null) {
- conn = DriverManager.getConnection(url); //connection a la db
- }
- if(conn!=null) {
- stmt = conn.createStatement(); //creation de la declaration
- res=stmt.executeUpdate(sql); //execution de la declaration
- //stmt.executeQuery(sql);
- conn.commit();
- //conn.close();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("create table probleme, verifier si le pb ne vient pas de executeupdate au lieu executequery");
- System.out.println(e.getMessage());
- }
- return res;
- }
-
-
- /**
- * La methode de remplissage de la base de donnees
- *
line String la ligne a ajouter
- *
i int, un compteur de valeurs lues,
- *
j int, qui suit i%NBCOL
- *
nbValAj int qui augmente si on doit ajouter des lignes
- *
date String, la valeur de la date lue
- *
jour String, le jour lu
- *
mois String, le mois lu
- *
an String, l annee lue
- *
mesL tableau dans lequel seront stockes tous les long
- *
mesS tableau dans lequel seront stockes tous les String
- *
mesD tableau dans lequel seront stockes tous les Double
- *
sc Scanner, l objet qui servira a lire le fichier csv
- * @param filePath String le fichier et son chemin
- * @return res int le resultat de la requete(nb de ligne affectees)
- */
- public int fillTable(String filePath){
- int res=-1;
- Scanner sc;
- int i=0,j, nbValAj=0;
- String line="";
- String date, jour, mois, an;
- long[][] mesL=new long[4000][NBCOL+1];
- String[][]mesS=new String[4000][NBCOL+1];
- Double[][]mesD=new Double[4000][NBCOL+1];
- String sql="INSERT INTO myny.Test_Table" +//definit la requete
- " (annee_numero_de_tirage, "+
- " jour_de_tirage, "+
- " date_de_tirage,"+
- " date_de_forclusion,"+
- " boule_1 ,"+
- " boule_2 ,"+
- " boule_3 ,"+
- " boule_4 ,"+
- " boule_5 ,"+
- " numero_chance ,"+
- " combinaison_gagnante_en_ordre_croissant ,"+
- " nombre_de_gagnant_au_rang1 ,"+
- " rapport_du_rang1 ,"+
- " nombre_de_gagnant_au_rang2 ,"+
- " rapport_du_rang2 ,"+
- " nombre_de_gagnant_au_rang3 ,"+
- " rapport_du_rang3 ,"+
- " nombre_de_gagnant_au_rang4 ,"+
- " rapport_du_rang4 ,"+
- " nombre_de_gagnant_au_rang5 ,"+
- " rapport_du_rang5 ,"+
- " nombre_de_gagnant_au_rang6 ,"+
- " rapport_du_rang6 ,"+
- " numero_jokerplus ,"+
- " devise ) VALUES \n";
- try {
- sc = new Scanner(new File(filePath));//lire le fichier csv
- sc.useDelimiter(";|\\n"); //definit les separateurs utilisés
- sc.nextLine();//passe la premiere ligne, les metadonnees
- while (sc.hasNext()){//tant qu'on a des champs non-vides, on va remplir la ligne et les cases specifiques des tableaux a 2 dim correspondant au champ lu
- j=(i% NBCOL)+1;
- if(j==1) {
- line=line+"(?,";
- mesL[nbValAj][j]=Long.parseLong(sc.next());
- }
- if(j< NBCOL && j>1) {
- line = line + "?,";
- if (j==2 ||j==11){
- //line=line+"\'"+sc.next().replace(",",".")+"\',";
- mesS[nbValAj][j] = sc.next().replaceAll("\\s", "");
-
- }
- else if (j==3 ||j==4){
- date=sc.next().replace(",",".");
- jour=date.substring(0,2);
- mois=date.substring(3,5);
- an=date.substring(6,10);
- mesS[nbValAj][j]=an+"-"+mois+"-"+jour;
- }
- else if (j >= 13 && j <= 23 && j % 2 == 1) {//pour les col 3 et 4, il s'agit d'une date, on va donc passer dela forme jj-mm-aaaa a la forme aaaa-mm-jj
- mesD[nbValAj][j] = Double.parseDouble(sc.next().replace(",", "."));
-
- }
- else {//pour les autres col, on va simplement les remplir
- mesL[nbValAj][j] = Long.parseLong(sc.next().replaceAll("\\s", ""));
- }
- }
- if(j== NBCOL) {
- nbValAj++;
- line=line+"?)";
- mesS[nbValAj][j] = sc.next().replaceAll("\\s", "");
- if(sc.hasNext()) {
- line = line+ ",";
- }
- else{
- line = line+ ";";
- }
- //System.out.println(line);
- sql=sql+line;
- line="";
- }
- i++;
- }
- System.out.println(sql);
- }
- catch (Exception e){
- System.out.println(e.getMessage());
- }
- if (nbValAj>0) {//si on a des modifications
- PreparedStatement ps;
- try {
- if (conn == null) {
- conn = this.getConnection();
- }
- if (conn != null) {
- ps=conn.prepareStatement(sql);
- for(int a=0;a1&&b<5)||b==11||b==25){
- System.out.println("a: "+a+" et b: "+b);
- ps.setString((a)*25+b, mesS[a][b]);
- }
- else if(b > 12 && b < 24 && b % 2 == 1){
- System.out.println("a: "+a+" et b: "+b);
- if (b == 13) {
- System.out.println(mesD[a][b]);
- }
- ps.setString((a)*25+b, mesD[a][b]+"");
- }
- else{
- System.out.println("a: "+a+" et b: "+b);
- ps.setString((a)*25+b, mesL[a][b]+"");
- }
- }
- }
- res=ps.executeUpdate();
- //ps.executeQuery();//puis on execute la requete
- System.out.println("update validee");
- }
- } catch (SQLException e) {
- System.out.println("filldatebase probleme, verifier si le pb ne viens pas de executeupdate au lieu executequery");
- System.out.println(e.getMessage());
- }
- }
- return res;
- }
-
-
- /**
- * La methode de mise a jour de la base de donnees
- * @param filePath String, le chemin+nom du fichier+extension
- * @return res int, le resultat de la requete(nb de ligne affectees)
- *
sc Scanner, l objet qui servira a lire le fichier csv
- *
line String, ligne contenant l'ajout a effectuer
- *
i int, un compteur de valeurs lues,
- *
j int, qui suit i%NBCOL
- *
nbValAj int qui augmente si on doit ajouter des lignes
- *
date String, la valeur de la date lue
- *
jour String, le jour lu
- *
mois String, le mois lu
- *
an String, l annee lue
- *
anEntre long, valeur lue pour l annee et le numero de tirage. sert a definir si la valeur est a ajouter dans la table
- * @deprecated
- */
- public int updateTable(String filePath) {
- ResultSet rs=null;
- Scanner sc;
- int res=-1;
- int i,j, nbValAj=0;
- String date, jour, mois, an;
- String line="";
- long anEntre;
- Statement stmt;
- long maxvaldb;
- String sql="INSERT INTO myny.Test_Table" + //le debut de la requete, specifiant laction a effectuer, la table et la db
- " (annee_numero_de_tirage, "+
- " jour_de_tirage, "+
- " date_de_tirage,"+
- " date_de_forclusion,"+
- " boule_1 ,"+
- " boule_2 ,"+
- " boule_3 ,"+
- " boule_4 ,"+
- " boule_5 ,"+
- " numero_chance ,"+
- " combinaison_gagnante_en_ordre_croissant ,"+
- " nombre_de_gagnant_au_rang1 ,"+
- " rapport_du_rang1 ,"+
- " nombre_de_gagnant_au_rang2 ,"+
- " rapport_du_rang2 ,"+
- " nombre_de_gagnant_au_rang3 ,"+
- " rapport_du_rang3 ,"+
- " nombre_de_gagnant_au_rang4 ,"+
- " rapport_du_rang4 ,"+
- " nombre_de_gagnant_au_rang5 ,"+
- " rapport_du_rang5 ,"+
- " nombre_de_gagnant_au_rang6 ,"+
- " rapport_du_rang6 ,"+
- " numero_jokerplus ,"+
- " devise ) VALUES \n";
- try {
- conn = this.getConnection(); //initialisation de la connexion
- if(conn!=null) { //si la co est bonne
- sc = new Scanner(new File(filePath)); //lire le fichier donne
- sc.useDelimiter(";|\\n"); //les delimiteurs seront ; et \n
- sc.nextLine(); //on ne conserve pas la premiere ligne, contenant les metadonnees
- anEntre=Long.parseLong(sc.next()); //lecture de l id en haut du tableau(donc le plus grand, cest ce qu on a constate en lisant le csv
- //System.out.println("numero en haut du fichier csv :"+anEntre);
- stmt = conn.createStatement(); //recuperation du nb de lignes dans la table
- rs = stmt.executeQuery("SELECT MAX(annee_numero_de_tirage) FROM myny.Test_Table;");
- rs.next();
- maxvaldb=rs.getLong(1);
- //System.out.println("numero max de la db :"+rs.getLong(1));
- /*comme les nombres de la premiere col sont decroissants, le nb le plus grand est lu en premier,
- on va donc lire les nombres jusqua arriver a la plus haute valeur entree dans la table. On ne
- pourrait probablement pas utiliser cette methode pour remplir la table en entier*/
- while(anEntre>maxvaldb) {
- nbValAj++;//des quon rentre dans la boucle, on sait qu'on va devoir mettre a jour la table car cette valeur est>0
- for (i = 0; i < NBCOL; i++) {//on remplit la ligne en effectuant une lecture par col
- j = (i % NBCOL) + 1;
- if (j == 1) {
- line = line + '(';//debut de la ligne a jouter
- line = line + anEntre;
- line = line + ';';//on met un point virgule mais on le remplacera plus tard
- //sc.next();
- }
- if (j < NBCOL && j > 1) {//pour chaque colonne, on va faire en sorte de mettre le champ dans la onne mise en fore pour qu'il soit accepté par la db
- if (j == 2 || j == 11) {
- line = line + "'" + sc.next().replace(",", ".") + "',";
- } else if (j == 3 || j == 4) {//pour les col 3 et 4, il s'agit d'une date, on va donc passer dela forme jj-mm-aaaa a la forme aaaa-mm-jj
- date = sc.next().replace(",", ".");
- jour = date.substring(0, 2);
- mois = date.substring(3, 5);
- an = date.substring(6, 10);
- line = line + "'" + an + "-" + mois + "-" + jour + "',";
- } else {//pour les autres col, on va simplement les remplir
- line = line + sc.next().replace(",", ".");
- line = line + ';';
- }
- }
- if (j == NBCOL) {//pour la derniere col
- line = line + "'" + sc.next().replace(",", ".") + "'";
- line = line + ')';//on la remplit
- line = line.replaceAll("\\s", "");//on remplace les caracteres qui nous derangent
- line = line.replaceAll(";", ",");
- anEntre = Long.parseLong(sc.next());//on lit le prochain id de l'entree
- if (anEntre > maxvaldb) {//on defini si on doit encore ajouter des lignes a la requete
- line = line + ",";
- } else {//ou si on doit cloturer la requete
- line = line + ";";
- }
- //System.out.println(line);
- sql = sql + line + "\n";//on ajoute la ligne a la requete
- line = "";
- }
- }
- }
- System.out.println(sql);
- if (nbValAj>0) {//on effectue la requete si on a des maj a faire
- try {
- conn = this.getConnection();
- if (conn != null) {
- stmt = conn.createStatement();
- res=stmt.executeUpdate(sql);
- //stmt.executeQuery(sql);
- conn.commit();
- //conn.close();
- System.out.println("update validee");
- }
- } catch (Exception e) {
- System.out.println("updateDataBase probleme");
- System.out.println(e.getMessage());
- }
- }
- }
- } catch (Exception e) {
- System.out.println("updateDataBase probleme");
- System.out.println(e.getMessage());
- }
- return res;
- }
-
- /**
- * La methode de mise a jour de la base de donnees 2 qui evite les injections sql
- * @param filePath String, le chemin+nom du fichier+extension
- * @return rs, int, le resultat de la requete (nb de lignes affectees)
- *
mesL tableau dans lequel seront stockes tous les long
- *
mesS tableau dans lequel seront stockes tous les String
- *
mesD tableau dans lequel seront stockes tous les Double
- *
sc Scanner, l objet qui servira a lire le fichier csv
- *
line String, ligne contenant l'ajout a effectuer
- *
i int, un compteur de valeurs lues,
- *
j int, qui suit i%NBCOL
- *
a int, un compteur de lignes modifiees
- *
b int, un compteur de champs modifiees
- *
nbValAj int qui augmente si on doit ajouter des lignes
- *
date String, la valeur de la date lue
- *
jour String, le jour lu
- *
mois String, le mois lu
- *
an String, l annee lue
- *
anEntre long, valeur lue pour l annee et le numero de tirage. sert a definir si la valeur est a ajouter dans la table
- *
ps PreparedStatement pour executer la requete sans injection sql
- *
stmt Statement pour executer la requete de depart
- */
- public int updateTablev2(String filePath) {
- //Ligne maL=new Ligne();
- ResultSet rs=null;
- int res=-1;
- Statement stmt;
- long[][] mesL=new long[4000][NBCOL+1];
- String[][]mesS=new String[4000][NBCOL+1];
- Double[][]mesD=new Double[4000][NBCOL+1];
- Scanner sc;
- long anEntre;
- int i,j, nbValAj=0;
- String date, jour, mois, an;
- String line="";
- String sql="INSERT INTO myny.Test_Table" + //le debut de la requete, specifiant laction a effectuer, la table et la db
- " (annee_numero_de_tirage, "+
- " jour_de_tirage, "+
- " date_de_tirage,"+
- " date_de_forclusion,"+
- " boule_1 ,"+
- " boule_2 ,"+
- " boule_3 ,"+
- " boule_4 ,"+
- " boule_5 ,"+
- " numero_chance ,"+
- " combinaison_gagnante_en_ordre_croissant ,"+
- " nombre_de_gagnant_au_rang1 ,"+
- " rapport_du_rang1 ,"+
- " nombre_de_gagnant_au_rang2 ,"+
- " rapport_du_rang2 ,"+
- " nombre_de_gagnant_au_rang3 ,"+
- " rapport_du_rang3 ,"+
- " nombre_de_gagnant_au_rang4 ,"+
- " rapport_du_rang4 ,"+
- " nombre_de_gagnant_au_rang5 ,"+
- " rapport_du_rang5 ,"+
- " nombre_de_gagnant_au_rang6 ,"+
- " rapport_du_rang6 ,"+
- " numero_jokerplus ,"+
- " devise ) VALUES \n";
- try {
- conn = this.getConnection(); //initialisation de la connexion
- if(conn!=null) { //si la co est bonne
- sc = new Scanner(new File(filePath)); //lire le fichier donne
- sc.useDelimiter(";|\\n"); //les delimiteurs seront ; et \n
- sc.nextLine(); //on ne conserve pas la premiere ligne, contenant les metadonnees
- anEntre=Long.parseLong(sc.next()); //lecture de l id en haut du tableau(donc le plus grand, cest ce qu on a constate en lisant le csv
- stmt = conn.createStatement(); //recuperation du nb de lignes dans la table
- rs = stmt.executeQuery("SELECT MAX(annee_numero_de_tirage) FROM myny.Test_Table;");
- rs.next();
- long maxvaldb=rs.getLong(1);
- if (maxvaldb<0){
- maxvaldb=0;
- }
- /*comme les nombres de la premiere col sont decroissants, le nb le plus grand est lu en premier,
- on va donc lire les nombres jusqua arriver a la plus haute valeur entree dans la table. On ne
- pourrait probablement pas utiliser cette methode pour remplir la table en entier*/
- while(anEntre>maxvaldb&&sc.hasNext()) {
- nbValAj++;//des quon rentre dans la boucle, on sait qu'on va devoir mettre a jour la table car cette valeur est>0
- for (i = 0; i < NBCOL; i++) {//on remplit la ligne en effectuant une lecture par col
- j = (i % NBCOL) + 1;
- if (j == 1) {
- line = line + "(?,";//debut de la ligne a jouter
- mesL[nbValAj][j]=anEntre;
- }
- if (j < NBCOL && j > 1) {//pour chaque colonne, on va faire en sorte de mettre le champ dans la onne mise en fore pour qu'il soit accepté par la db
- line = line + "?,";
- if (j == 2 || j == 11) {
- mesS[nbValAj][j] = sc.next().replaceAll("\\s", "");
- } else if (j == 3 || j == 4) {//pour les col 3 et 4, il s'agit d'une date, on va donc passer dela forme jj-mm-aaaa a la forme aaaa-mm-jj
- date = sc.next().replace(",", ".");
- jour = date.substring(0, 2);
- mois = date.substring(3, 5);
- an = date.substring(6, 10);
- mesS[nbValAj][j] = an + "-" + mois + "-" + jour ;
- }
- else if (j >= 13 && j <= 23 && j % 2 == 1) {//pour les col 3 et 4, il s'agit d'une date, on va donc passer dela forme jj-mm-aaaa a la forme aaaa-mm-jj
- mesD[nbValAj][j] = Double.parseDouble(sc.next().replace(",", "."));
- }
- else {//pour les autres col, on va simplement les remplir
- mesL[nbValAj][j] = Long.parseLong(sc.next().replaceAll("\\s", ""));
- }
- }
- else if (j == NBCOL) {//pour la derniere col
- line=line+"?)";
- mesS[nbValAj][j] = sc.next().replaceAll("\\s", "");
- anEntre = Long.parseLong(sc.next());//on lit le prochain id de l'entree
- if (anEntre > maxvaldb) {//on defini si on doit encore ajouter des lignes a la requete
- line = line + ",";
- } else {//ou si on doit cloturer la requete
- line = line + ";";
- }
- //System.out.println(line);
- sql = sql + line + "\n";//on ajoute la ligne a la requete
- line = "";
- }
- }
- }
- System.out.println(sql);
- if (nbValAj>0) {//si on a des modifications
- PreparedStatement ps;
- try {
- conn = this.getConnection();
- if (conn != null) {
- ps=conn.prepareStatement(sql);
- for(int a=1;a<=nbValAj;a++){//pour chaque case de chaque ligne ajoutée, on va ajouter la valeur
- for(int b=1;b<=NBCOL;b++){//dans la declaration preparee, pour eviter les injections sql
- if((b>1&&b<5)||b==11||b==25){
- System.out.println("a: "+a+" et b: "+b);
- ps.setString((a-1)*25+b, mesS[a][b]);
- }
- else if(b > 12 && b < 24 && b % 2 == 1){
- System.out.println("a: "+a+" et b: "+b);
- ps.setString((a-1)*25+b, mesD[a][b]+"");
- }
- else{
- System.out.println("a: "+a+" et b: "+b);
- ps.setString((a-1)*25+b, mesL[a][b]+"");
- }
- }
- }
- res=ps.executeUpdate();//puis on execute la requete
- //res=ps.executeQuery();//puis on execute la requete
- System.out.println("update validee");
- }
- } catch (Exception e) {
- System.out.println("updateDataBasev2 probleme");
- System.out.println(e.getMessage());
- }
- }
- }
- } catch (Exception e) {
- System.out.println("updateDataBasev2 probleme, verifier si le pb ne vient pas de executeupdate au lie de executequery");
- System.out.println(e.getMessage());
- }
- return res;
- }
-
- /**
- * la methode de selection de la ligne ayant la valeur i dans annee_numero_de_tirage
- * @param i la valeur de reference
- * @return rs, ResultSet le resultat de la requete
- */
- public ResultSet showLine(int i){
- ResultSet rs=null;
- String sql="select * from myny.Test_Table where annee_numero_de_tirage ="+i;
- try {
- conn = this.getConnection();
- if(conn!=null) {
- Statement ps = conn.createStatement();
- rs=ps.executeQuery(sql);
- conn.commit();
- //conn.close();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("removeLine probleme");
- System.out.println(e.getMessage());
- }
- return rs;
- }
-
- /**
- * la methode de suppression de la ligne ayant la valeur i dans annee_numero_de_tirage
- * @param i la valeur de reference
- * @return res, int le resultat de la requete(nb de lignes affectees)
- */
- public int removeLine(int i){
- int res=-1;
- String sql="delete from myny.Test_Table where annee_numero_de_tirage ="+i;
- try {
- conn = this.getConnection();
- if(conn!=null) {
- Statement ps = conn.createStatement();
- res=ps.executeUpdate(sql);
- //res=ps.executeQuery(sql);
- conn.commit();
- //conn.close();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("removeLine probleme, voir si le pb ne vient pas d'execute query et executeupdate");
- System.out.println(e.getMessage());
- }
- return res;
- }
-
- /**
- * la methode de supression des lignes strictement superieures a la valeur i dans annee_numero_de_tirage
- * @param i la valeur de reference
- * @return res, int le resultat de la requete (nb de lignes affectees)
- */
- public int removeMultiplesLines(int i){
- int res=-1;
- String sql="delete from myny.Test_Table where annee_numero_de_tirage >"+i;
- try {
- conn = this.getConnection();
- if(conn!=null) {
- Statement ps = conn.createStatement();
- res=ps.executeUpdate(sql);
- //ps.executeQuery(sql);
- conn.commit();
- //conn.close();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("removeLines probleme");
- System.out.println(e.getMessage());
- }
- return res;
- }
-
- /**
- * La methode pour supprimer la table entiere
- * @return res int le resultat de la requete(nb de lignes affectees)
- */
- public int dropTable(){
- String sql="drop table myny.Test_Table";
- int res=-1;
- try {
- conn = this.getConnection();
- if(conn!=null) {
- Statement ps = conn.createStatement();
- //rs=ps.executeQuery(sql);
- res=ps.executeUpdate(sql);
- conn.commit();
- //conn.close();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("dropTable probleme, voir si le pb ne vient pas d'execute query et executeupdate");
- System.out.println(e.getMessage());
- }
- return res;
- }
}
diff --git a/src/main/java/fr/myny/grid/BuildGrid.java b/src/main/java/fr/myny/grid/BuildGrid.java
index 025aabb..1aa27b0 100644
--- a/src/main/java/fr/myny/grid/BuildGrid.java
+++ b/src/main/java/fr/myny/grid/BuildGrid.java
@@ -4,38 +4,20 @@ import java.util.Arrays;
import java.util.Objects;
public class BuildGrid {
- /** Tableau à deux dimension qui va contenir les grilles proposees par le logiciel */
- private double m_grid[][];
- /** nombre de lignes du tableau, soit le nombre de grilles à jouer que va proposer le tableau */
private int m_dim_x;
-
- /** nombre de colonnes du tableau */
private int m_dim_y;
+ private float m_grid[][];
/*
CONSTRUCTOR
*/
- /** Constructeur par defaut*/
- public BuildGrid()
- {
- System.out.print("Creating a new grid: ");
-
- m_grid = new double[1][5];
- setDimX(1);
- setDimY(5);
-
- this.fillWith(0);
- System.out.println("Done");
- }
-
- /** Constructeur avec parametres (Le tableau cree aura autant de lignes que de colonnes)*/
public BuildGrid(int dim)
{
System.out.print("Creating a new grid: ");
- m_grid = new double[dim][dim];
+ m_grid = new float[dim][dim];
setDimX(dim);
setDimY(dim);
@@ -43,12 +25,11 @@ public class BuildGrid {
System.out.println("Done");
}
- /** Constructeur avec parametres*/
public BuildGrid( int dim_x, int dim_y)
{
System.out.print("Creating a new grid: ");
- m_grid = new double[dim_x][dim_y];
+ m_grid = new float[dim_x][dim_y];
setDimX(dim_x);
setDimY(dim_y);
@@ -60,25 +41,21 @@ public class BuildGrid {
SETTERS & GETTERS
*/
- /** Methode retournant le nombre de lignes du tableau*/
public int getDimX ()
{
return m_dim_x;
}
- /** Methode retournant le nombre de colonnes du tableau*/
public int getDimY ()
{
return m_dim_y;
}
- /** Modifie le nombre de lignes du tableau*/
public void setDimX (int value)
{
m_dim_x = value;
}
- /** Modifie le nombre de colonnes du tableau*/
public void setDimY (int value)
{
m_dim_y = value;
@@ -88,24 +65,20 @@ public class BuildGrid {
TRANSFORM THE GRID
*/
- /** Methode permettant de mettre a jour la case (X,Y) du tableau avec le parametre 'value'*/
- public void putValue(float value, int X, int Y)
+ public void putValue(float value, int posX, int posY)
{
- m_grid[X][Y] = value;
+ m_grid[posX][posY] = value;
}
- /** Methode permettant de recuperer la valeur de la case (X,Y) du tableau */
- public double getValue(int X, int Y)
+ public float getValue(int posX, int posY)
{
- return m_grid[X][Y];
+ return m_grid[posX][posY];
}
- /** Methode renvoyant une reference du tableau */
- public double[][] getM_grid() {
+ public float[][] getM_grid() {
return m_grid;
}
- /** Methode permettant d'afficher le contenu du tableau a deux dimension sur un terminal*/
public void displayGrid ()
{
for (int i = 0; i < getDimX(); i++) {
@@ -118,7 +91,6 @@ public class BuildGrid {
}
}
- /** Methode permettant de remplir toutes les cases du tableau avec la valeur du parametre 'value' */
public void fillWith ( float value)
{
for (int i = 0; i < getDimX(); i++) {
@@ -128,12 +100,6 @@ public class BuildGrid {
}
}
- /** Methode permettant de determiner les grilles a jouer que va proposer le systeme reducteur*/
- public void systemeReduc(int nb_numeros, int[] serie_de_numeros, float garantie)
- {
- }
-
- /** Methode surchargee permettant de verifier si deux tableaux sont egaux en comparant leur contenu */
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -142,7 +108,6 @@ public class BuildGrid {
return m_dim_x == buildGrid.m_dim_x && m_dim_y == buildGrid.m_dim_y && Arrays.equals(m_grid, buildGrid.m_grid);
}
- /** Methode assignant un nombre unique a chaque instance de la classe Grid pour les differencier entre elles*/
@Override
public int hashCode() {
int result = Objects.hash(m_dim_x, m_dim_y);
diff --git a/src/main/java/fr/myny/gui/ButtonController.java b/src/main/java/fr/myny/gui/ButtonController.java
deleted file mode 100644
index d56b6cb..0000000
--- a/src/main/java/fr/myny/gui/ButtonController.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package fr.myny.gui;
-
-import javafx.fxml.FXML;
-
-import java.io.IOException;
-
-/**
- * Classe permettant l'execution des fonctionnalités de l'application via les autres packages data, database, grid et stats.
- */
-public class ButtonController {
-
- /**
- * Execution de la méthode de téléchargement de toutes les données automatiquement et met à jour la base de données
- * @throws IOException
- */
- @FXML
- private void controllerAutoTirage() throws IOException {
-
- }
-
- /**
- * Execution de la méthode de téléchargement des dernières données automatiquement et met à jour la base de données
- * @throws IOException
- */
- @FXML
- private void controllerAutoDernierTirage() throws IOException {
-
- }
-
- /**
- * Demande à l'utilisateur de sélectionner un fichier CSV via l'explorateur des fichiers et met à jour la base de données
- * @throws IOException
- */
- @FXML
- private void controllerGetCSVFile() throws IOException {
-
- }
-
- /**
- * Appelle la méthode d'affichage des statistiques des fréquences d'apparitions d'un nombre
- * @throws IOException
- */
- @FXML
- private void checkBoxNumeros() throws IOException {
-
- }
-
- /**
- * Appelle la méthode d'affichage des statistiques des fréquences d'apparitions de combinaison de 2 chiffres
- * @throws IOException
- */
- @FXML
- private void checkBox2Numeros() throws IOException {
-
- }
-
- /**
- * Appelle la méthode d'affichage des statistiques des fréquences d'apparitions de combinaison de 3 chiffres
- * @throws IOException
- */
- @FXML
- private void checkBox3Numeros() throws IOException {
-
- }
-
- /**
- * Appelle la méthode d'affichage des statistiques des fréquences d'apparitions d'un nombre bonus
- * @throws IOException
- */
- @FXML
- private void checkBoxNumerosBonus() throws IOException {
-
- }
-}
diff --git a/src/main/java/fr/myny/gui/DocumentController.java b/src/main/java/fr/myny/gui/DocumentController.java
deleted file mode 100644
index 0099a32..0000000
--- a/src/main/java/fr/myny/gui/DocumentController.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package fr.myny.gui;
-
-import javafx.collections.ObservableList;
-import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
-import javafx.fxml.Initializable;
-import javafx.scene.control.ChoiceBox;
-
-import java.net.URL;
-import java.util.ResourceBundle;
-
-/**
- * Classe permettant d'initialiser et d'écouter le changement des ChoiceBox
- */
-public class DocumentController implements Initializable {
-
- /**
- * ChoiceBox créé grâce à FXML
- */
- private ChoiceBox integerChoiceBox;
-
- /**
- *
- * ChoiceBox créé grâce à FXML
- */
- private ChoiceBox stringChoiceBox;
-
- /**
- * Liste d'entier observable grâce à FX
- */
- private ObservableList observableIntegerList;
-
- /**
- * Liste de chaîne de caractère observable grâce à FX
- */
- private ObservableList observableStringList;
-
- /**
- * Initialisation de la première ChoiceBox du nombre de numéros voulu
- * @param url Paramètre non utilisé mais obligatoire en argument
- * @param resourceBundle Paramètre non utilisé mais obligatoire en argument
- */
- @Override
- public void initialize(URL url, ResourceBundle resourceBundle) {
-
- }
-
- /**
- * Action lors d'un évenement concernant la garantie du système
- * @param event Action de l'évenement
- */
- @FXML
- private void numberGuarantee(ActionEvent event){
-
- }
-
- /**
- * Action lors d'un évenement concernant le nombre de numéros à jouer
- * @param event Action de l'évenement
- */
- @FXML
- private void numberPlay(ActionEvent event){
-
- }
-
- /**
- * Chargement de toutes les options garantie du systeme
- */
- private void loadDataGuarantee(){
-
- }
-
- /**
- * Chargement de toutes les options liés au nombre de numéro voulu
- */
- private void loadDataNumbers(){
-
- }
-
-}
diff --git a/src/main/java/fr/myny/gui/GridController.java b/src/main/java/fr/myny/gui/GridController.java
deleted file mode 100644
index c4b747a..0000000
--- a/src/main/java/fr/myny/gui/GridController.java
+++ /dev/null
@@ -1,498 +0,0 @@
-package fr.myny.gui;
-
-import javafx.fxml.FXML;
-import javafx.fxml.Initializable;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.ResourceBundle;
-
-/**
- * Classe permettant d'initaliser la grille de choix des nombres et d'écouter si l'un d'entre eux est sélectionné
- */
-public class GridController implements Initializable {
-
- /**
- * Liste des nombres bonus sélectionnés
- */
- ArrayList bonusNumbersChecked;
-
- /**
- * Liste des nombres sélectionnés
- */
- ArrayList numbersChecked;
-
- /**
- * @param url
- * @param resourceBundle
- */
- @Override
- public void initialize(URL url, ResourceBundle resourceBundle) {
-
- }
-
- /**
- * Contrôleur du numéro bonus 1
- */
- @FXML
- private void numberBonusController1() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 2
- */
- @FXML
- private void numberBonusController2() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 3
- */
- @FXML
- private void numberBonusController3() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 4
- */
- @FXML
- private void numberBonusController4() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 5
- */
- @FXML
- private void numberBonusController5() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 6
- */
- @FXML
- private void numberBonusController6() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 7
- */
- @FXML
- private void numberBonusController7() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 8
- */
- @FXML
- private void numberBonusController8() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 9
- */
- @FXML
- private void numberBonusController9() throws IOException{
-
- }
-
- /**
- * Contrôleur du numéro bonus 10
- */
- @FXML
- private void numberBonusController10() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 1
- */
- @FXML
- private void numberController1() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 2
- */
- @FXML
- private void numberController2() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 3
- */
- @FXML
- private void numberController3() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 4
- */
- @FXML
- private void numberController4() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 5
- */
- @FXML
- private void numberController5() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 6
- */
- @FXML
- private void numberController6() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 7
- */
- @FXML
- private void numberController8() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 9
- */
- @FXML
- private void numberController9() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 10
- */
- @FXML
- private void numberController10() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 11
- */
- @FXML
- private void numberController11() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 12
- */
- @FXML
- private void numberController12() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 13
- */
- @FXML
- private void numberController13() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 14
- */
- @FXML
- private void numberController14() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 15
- */
- @FXML
- private void numberController15() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 16
- */
- @FXML
- private void numberController16() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 17
- */
- @FXML
- private void numberController17() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 18
- */
- @FXML
- private void numberController18() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 19
- */
- @FXML
- private void numberController19() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 20
- */
- @FXML
- private void numberController20() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 21
- */
- @FXML
- private void numberController21() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 22
- */
- @FXML
- private void numberController22() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 23
- */
- @FXML
- private void numberController23() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 24
- */
- @FXML
- private void numberController24() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 25
- */
- @FXML
- private void numberController25() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 26
- */
- @FXML
- private void numberController26() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 27
- */
- @FXML
- private void numberController27() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 28
- */
- @FXML
- private void numberController28() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 29
- */
- @FXML
- private void numberController29() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 30
- */
- @FXML
- private void numberController30() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 31
- */
- @FXML
- private void numberController31() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 32
- */
- @FXML
- private void numberController32() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 33
- */
- @FXML
- private void numberController33() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 34
- */
- @FXML
- private void numberController34() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 35
- */
- @FXML
- private void numberController35() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 36
- */
- @FXML
- private void numberController36() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 37
- */
- @FXML
- private void numberController37() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 38
- */
- @FXML
- private void numberController38() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 39
- */
- @FXML
- private void numberController39() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 40
- */
- @FXML
- private void numberController40() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 41
- */
- @FXML
- private void numberController41() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 42
- */
- @FXML
- private void numberController42() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 43
- */
- @FXML
- private void numberController43() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 44
- */
- @FXML
- private void numberController44() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 45
- */
- @FXML
- private void numberController45() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 46
- */
- @FXML
- private void numberController46() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 47
- */
- @FXML
- private void numberController47() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 48
- */
- @FXML
- private void numberController48() throws IOException {
-
- }
-
- /**
- * Contrôleur du numéro 49
- */
- @FXML
- private void numberController49() throws IOException {
-
- }
-}
diff --git a/src/main/java/fr/myny/gui/Gui.java b/src/main/java/fr/myny/gui/Gui.java
deleted file mode 100644
index 633d32b..0000000
--- a/src/main/java/fr/myny/gui/Gui.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package fr.myny.gui;
-
-import javafx.application.Application;
-import javafx.fxml.FXMLLoader;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.stage.Stage;
-import java.io.IOException;
-
-public class Gui extends Application {
-
- private static Scene scene;
-
- @Override
- public void start(Stage stage) throws IOException {
- scene = new Scene(loadFXML("primary"));
- stage.setScene(scene);
- stage.show();
- }
-
- static void setRoot(String fxml) throws IOException {
- scene.setRoot(loadFXML(fxml));
- }
-
- private static Parent loadFXML(String fxml) throws IOException {
- FXMLLoader fxmlLoader = new FXMLLoader(Gui.class.getResource(fxml + ".fxml"));
- return fxmlLoader.load();
- }
-
- public static void main(String[] args) {
- launch();
- }
-}
diff --git a/src/main/java/fr/myny/gui/Ihm.java b/src/main/java/fr/myny/gui/Ihm.java
new file mode 100644
index 0000000..85162b8
--- /dev/null
+++ b/src/main/java/fr/myny/gui/Ihm.java
@@ -0,0 +1,4 @@
+package fr.myny.gui;
+
+public class Ihm {
+}
diff --git a/src/main/java/fr/myny/gui/PrimaryController.java b/src/main/java/fr/myny/gui/PrimaryController.java
deleted file mode 100644
index b3e3df4..0000000
--- a/src/main/java/fr/myny/gui/PrimaryController.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package fr.myny.gui;
-
-import javafx.fxml.FXML;
-
-import java.io.IOException;
-
-public class PrimaryController {
-
- @FXML
- private void switchToSecondary() throws IOException {
- Gui.setRoot("secondary");
- }
-}
diff --git a/src/main/java/fr/myny/gui/SecondaryController.java b/src/main/java/fr/myny/gui/SecondaryController.java
deleted file mode 100644
index ed9f6bd..0000000
--- a/src/main/java/fr/myny/gui/SecondaryController.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package fr.myny.gui;
-
-import javafx.fxml.FXML;
-
-import java.io.IOException;
-
-public class SecondaryController {
-
- @FXML
- private void switchToPrimary() throws IOException {
- Gui.setRoot("primary");
- }
-}
\ No newline at end of file
diff --git a/src/main/java/fr/myny/stats/Statistics.java b/src/main/java/fr/myny/stats/Statistics.java
deleted file mode 100644
index dd6df3a..0000000
--- a/src/main/java/fr/myny/stats/Statistics.java
+++ /dev/null
@@ -1,474 +0,0 @@
-package fr.myny.stats;
-
-import fr.myny.database.DataBase;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-/**
- * La classe Statistics qui sert a donner le nombre d'appartition de chaque chiffre/combinaison (et leurs ID si besoin)
- */
-
-
-public class Statistics {
- public DataBase maDB;
- public Connection conn;
- public long numSelect[];
- public int bonusSelect;
- public long numId[][]; //liste des identifiants des lignes contenant un chiffre specifique
- public long numCpt[][]; //total d'apparitions de chaque chiffre
- public long bonusId[][]; //liste des identifiants des lignes contenant un chiffre bonus specifique
- public long bonusCpt[][]; //total d'apparitions de chaque bonus
- public long combi1Id[][]; //liste des identifiants des lignes cumulant 2 chiffres specifiques
- public long combi1Cpt[]; //total d'apparitions de chaque chiffre qui correspond egalement a un premier chiffre sur la meme ligne
- public long combi2Id[][]; //liste des identifiants des lignes cumulant 3 chiffres specifiques
- public long combi2Cpt[]; //total d'apparitions de chaque chiffre qui correspond egalement aux 2 premiers chiffres sur la meme ligne
- public long num1_bonusId[][]; //liste des identifiants des lignes cumulant 1 chiffre specifique et un numero bonus specifique
- public long num1_bonusCpt[]; //total d'apparitions de chaque bonus qui correspond egalement au premier chiffre sur la meme ligne
- public long num2_bonusId[][]; //liste des identifiants des lignes cumulant 2 chiffres specifiques et un numero bonus specifique
- public long num2_bonusCpt[]; //total d'apparitions de chaque bonus qui correspond egalement aux 2 premiers chiffres sur la meme ligne
- public long num3_bonusId[][]; //liste des identifiants des lignes cumulant 3 chiffres specifiques et un numero bonus specifique
- public long num3_bonusCpt[]; //total d'apparitions de chaque bonus qui correspond egalement aux 3 premiers chiffres sur la meme ligne
- public long taille;
-
- /**
- * Constructeur, charge d'initialiser les differents champs
- *
Pour les tableaux, leurs tailles (de 4000) sont surevaluees pour pouvoir augmenter quandla table augmentera
- *
Une solution optimale serait de fonctionner par exmple avec des TreeMap ou des ArrayLists a la place, pour eviter
- *
d'utiliser trop de memoire inutilement
- */
- public Statistics(){
- maDB=new DataBase();
- conn= maDB.getConnection();
- numSelect =new long[5];
- numId =new long[50][4000];
- numCpt = new long[50][2];
- combi1Id =new long[50][4000];
- combi1Cpt = new long[50];
- num1_bonusId =new long[11][4000];
- num1_bonusCpt = new long[11];
- num2_bonusId =new long[11][4000];
- num2_bonusCpt = new long[11];
- num3_bonusId =new long[11][4000];
- num3_bonusCpt = new long[11];
- combi2Id=new long[50][4000];
- combi2Cpt=new long[50];
- bonusId =new long[11][4000];
- bonusCpt=new long[11][2];
- }
-
- /**
- * Sert a recuperer la taille de la table pour calculer la frequence d'apparition de la combinaison/du nombre considere
- */
- //TODO: enlever l'affichage
- public void setTaille(){
- /*on effectue un requete "SELECT Count(*) From myny.Test_Table"
- puis on l'affecte a une variable de l'objet Statistics*/
- try {
- conn = maDB.getConnection();
- if (conn != null) {
- Statement ps = conn.createStatement();
- ResultSet rs=ps.executeQuery("SELECT Count(*) From myny.Test_Table");
- rs.next();
- long nbcolret= rs.getLong(1);
- conn.commit();
- System.out.println("statement cree");
- taille =nbcolret;
- System.out.println(taille);
- }
- } catch (SQLException e) {
- System.out.println("chiffre1 probleme");
- System.out.println(e.getMessage());
- }
-
- }
-
- /**
- * Sert a recuperer le nombre d'apparitions de chaque numero ainsi que leurs id (annee_numero_de_tirage) de la table dans la db
- *
i, k, l (int) sont des compteurs
- *
numprec(int) verifie si on change de chiffre ou non
- *
rs (ResultSet) sert a avoir des retours sur les requetes realisees
- * @throws SQLException si erreur SQL
- */
- //TODO: enlever l'affichage
- public void afficherChiffre1() throws SQLException {
- System.out.println("debut afficherChiffre1");
- int k=0, numprec=0, l=0;
- ResultSet rs=null;
- String sql;
- for (int i=1; i<6;i++) {
- //pour chaque colonne contenant une boule (non bonus) de la table, on va recuperer le nombre d'apparitions de chaque boule et le stocker dans un tableau
- sql = "SELECT Test_Table.boule_" + i + ",Count(*) as 'cnt' FROM myny.Test_Table GROUP BY Test_Table.boule_" + i + "; ";
- try {
- if(conn==null) {
- conn = maDB.getConnection();
- }
- if (conn != null) {
- Statement ps = conn.createStatement();
- rs = ps.executeQuery(sql);
- conn.commit();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("chiffre1 probleme");
- System.out.println(e.getMessage());
- }
- while (rs.next()) {
- if (i == 1) {
- numCpt[rs.getInt(1)][0] = rs.getInt(1);
- numCpt[rs.getInt(1)][1] = rs.getLong(2);
- } else {
- numCpt[rs.getInt(1)][1] += rs.getLong(2);
- }
- }
- }
- for (int i=1; i<=5;i++) {
- //pour chaque colonne contenant une boule (non bonus) de la table, on va
- // recuperer les annee_numero_de_tirage correspondants et les stocker dans un tableau
- sql = "SELECT Test_Table.annee_numero_de_tirage, Test_Table.boule_" + i + " FROM myny.Test_Table ORDER BY Test_Table.boule_" + i + "; ";
- try {
- if(conn==null) {
- conn = maDB.getConnection();
- }
- if (conn != null) {
- Statement ps = conn.createStatement();
- rs = ps.executeQuery(sql);
- conn.commit();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("chiffre1 probleme");
- System.out.println(e.getMessage());
- }
-
-
- //rs.next();
- while (rs.next()) {
- //System.out.println(numprec+", "+rs.getInt(2));
- if(numprec!=rs.getInt(2)) {k = 0;}
- while(numId[rs.getInt(2)][k]!=0){
- k++;
- }
- numId[rs.getInt(2)][k]=rs.getInt(1);
- //System.out.println(numId[rs.getInt(2)][k]);
- numprec=rs.getInt(2);
- }
- k=0;
- }
- for (int i=1; i<50;i++) {
- System.out.println(i+":"+numCpt[i][1]);
- while(numId[i][l]!=0){
- System.out.print(numId[i][l]+", ");
- l++;
- }
- System.out.println();
- l=0;
- }
- }
-
- /**
- * On va essayer de trouver les correspondances d'identifiants entre le chiffre entre en parametre et les chiffres dans les lignes de la tables, pour les stocker dans un tableau, et sur un second qui va compter les correspondances entre le premier et les seconds chiffres potentiels
- * @param chiffre1 (int) le chiffre donne;
- *
i, j, k, l (int) sont des compteurs
- * @throws SQLException si erreur SQL
- */
- //TODO: enlever l'affichage
- public void afficherCombinaisons2(int chiffre1) throws SQLException {
- afficherChiffre1();
- System.out.println("debut afficherCombinaisons2");
- numSelect[1]=chiffre1;
- int j=0, k=0, l=0;
- while (numId[chiffre1][j] != 0) {
- for(int i=1;i<50;i++) {
- if (i != chiffre1) {
- while (numId[i][k] != 0) {
- if (numId[i][k] == numId[chiffre1][j]) {
- //System.out.println("[i:"+i+"][k:"+k+"][j:"+j+"]");
- //System.out.println(numId[i][k] +"=="+ numId[chiffre1][j]);
- //combi1Cpt[i]++;
- combi1Id[i][(int)combi1Cpt[i]++]=numId[i][k];
- //System.out.println("[cpt:"+cpt+"]");
- }
- k++;
- }
- k = 0;
- }
- }
- j++;
- }
- for (int i=1; i<50;i++) {
- /*for (int p=0; p<50;p++) {
- System.out.print(combi1Id[i][p]+", ");
- }*/
- System.out.println(i+": "+combi1Cpt[i]);
- while(combi1Id[i][l]!=0){
- System.out.print(combi1Id[i][l]+", ");
- l++;
- }
- System.out.println();
- l=0;
- }
-
- }
-
- /**
- * On va essayer de trouver les correspondances d'identifiants entre les 2 chiffres entres en parametre et les chiffres dans les lignes de la tables, pour les stocker dans un tableau, et sur un second qui va compter les correspondances entre le premier, le second et les troisièmes chiffres potentiels
- * @param chiffre1, (int) le premier chiffre donne;
- * @param chiffre2, (int) le second chiffre donne;
- *
i, j, k (int) sont des compteurs
- * @throws SQLException si erreur SQL
- */
- //TODO: enlever l'affichage
- public void afficherCombinaisons3(int chiffre1, int chiffre2) throws SQLException {
- //afficherChiffre1();
- afficherCombinaisons2(chiffre1);
- System.out.println("debut afficherCombinaisons3");
- numSelect[2]=chiffre2;
- int j=0, k=0;
- while (combi1Id[chiffre2][j] != 0){
- for(int i=1;i<50;i++) {
- if (i != chiffre1 && i!=chiffre2) {
- while (numId[i][k] != 0) {
- if (numId[i][k] == combi1Id[chiffre2][j]) {
- combi2Id[i][(int)combi2Cpt[i]++]=numId[i][k];
- }
- k++;
- }
- k = 0;
- }
- }
- j++;
- }
- k = 0;
- for (int i=1; i<50;i++) {
- /*for (int p=0; p<50;p++) {
- System.out.print(combi1Id[i][p]+", ");
- }*/
- System.out.println(i+": "+combi2Cpt[i]);
- while(combi2Id[i][k]!=0){
- System.out.print(combi2Id[i][k]+", ");
- k++;
- }
- System.out.println();
- k=0;
- }
-
- }
-
- /**
- * Sert a recuperer le nombre d'apparitions de chaque numero bonus ainsi que leurs id (annee_numero_de_tirage) de la table dans la db
- *
i, k, l (int) sont des compteurs
- *
numprec(int) verifie si on change de chiffre ou non
- *
rs (ResultSet) sert a avoir des retours sur les requetes realisees
- * @throws SQLException si erreur SQL
- */
- //TODO: enlever l'affichage
- public void afficherBonus() throws SQLException {
- System.out.println("debut afficherBonus");
- int k=0, numprec=0, l=0;
- ResultSet rs=null;
- String sql;
- sql = "SELECT Test_Table.numero_chance,Count(*) as 'cnt' FROM myny.Test_Table GROUP BY Test_Table.numero_chance; ";
- try {
- conn = maDB.getConnection();
- if (conn != null) {
- Statement ps = conn.createStatement();
- rs = ps.executeQuery(sql);
- conn.commit();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("chiffre1 probleme");
- System.out.println(e.getMessage());
- }
-
- //rs.next();
- while (rs.next()) {
- bonusCpt[rs.getInt(1)][0] = rs.getInt(1);
- bonusCpt[rs.getInt(1)][1] = rs.getLong(2);
-
- }
- /*for (int i=0; i<11;i++) {
- System.out.println(i+" :"+ bonusCpt[i][1]);
- }*/
- sql = "SELECT Test_Table.annee_numero_de_tirage, Test_Table.numero_chance FROM myny.Test_Table ORDER BY Test_Table.numero_chance; ";
- try {
- conn = maDB.getConnection();
- if (conn != null) {
- Statement ps = conn.createStatement();
- rs = ps.executeQuery(sql);
- conn.commit();
- System.out.println("statement cree");
- }
- } catch (SQLException e) {
- System.out.println("chiffre1 probleme");
- System.out.println(e.getMessage());
- }
-
-
- //rs.next();
- while (rs.next()) {
- //System.out.println(numprec+", "+rs.getInt(2));
- if(numprec!=rs.getInt(2)) {k = 0;}
- while(bonusId[rs.getInt(2)][k]!=0){
- k++;
- }
- bonusId[rs.getInt(2)][k]=rs.getInt(1);
- //System.out.println(bonusId[rs.getInt(2)][k]);
- numprec=rs.getInt(2);
- }
- for (int i=1; i<11;i++) {
- System.out.println(i+":"+bonusCpt[i][1]);
- while(bonusId[i][l]!=0){
- System.out.print(bonusId[i][l]+", ");
- l++;
- }
- System.out.println();
- l=0;
- }
- }
-
- /**
- * On va essayer de trouver les correspondances d'identifiants entre le chiffre entre en parametre et les chiffres bonus potentiels dans les lignes de la tables, pour les stocker dans un tableau, et sur un second qui va compter les correspondances entre le premier chiffre et les seconds chiffres bonus potentiels
- * @param chiffre1, (int) le chiffre donne;
- *
i, j, k, l (int) sont des compteurs
- * @throws SQLException si erreur SQL
- */
- //TODO: enlever l'affichage
- public void afficherNumBonus(int chiffre1) throws SQLException {
- afficherChiffre1();
- this.afficherBonus();
- System.out.println("debut afficherNumBonus");
- numSelect[1]=chiffre1;
- int j=0, k=0, l=0, cpt=0;
- for(int i=1;i<11;i++) {
- while (numId[chiffre1][j] != 0) {
- while (bonusId[i][k] != 0) {
- //System.out.println(bonusId[i][k] +"=="+ numId[chiffre1][j]);
- if (bonusId[i][k] == numId[chiffre1][j]) {
- num1_bonusCpt[i]++;
- num1_bonusId[i][cpt++]=bonusId[i][k];
- j++;
- k=0;
- }
- k++;
- }
- k = 0;
- j++;
- }
- j = 0;
- cpt=0;
- }
- for (int i=1; i<11;i++) {
- /*for (int p=1; p<50;p++) {
- System.out.print(combi1Id[i][p]+", ");
- }*/
- System.out.println(i+": "+num1_bonusCpt[i]);
- while(num1_bonusId[i][l]!=0){
- System.out.print(num1_bonusId[i][l]+", ");
- l++;
- }
- System.out.println();
- l=0;
- }
-
- }
-
- /**
- * On va essayer de trouver les correspondances d'identifiants entre les 2 chiffres entres en parametre et les chiffres bonus potentiels dans les lignes de la tables, pour les stocker dans un tableau, et sur un second qui va compter les correspondances entre le premier chifre, le second chiffre et les chiffres bonus potentiels
- * @param chiffre1, (int) le premier chiffre donne;
- * @param chiffre2, (int) le second chiffre donne;
- *
i, j, k, l, cpt (int) sont des compteurs
- * @throws SQLException si erreur SQL
- */
- //TODO: enlever l'affichage
- public void afficherNumBonusCombi2(int chiffre1, int chiffre2) throws SQLException {
- afficherCombinaisons2(chiffre1);
- afficherBonus();
- System.out.println("debut afficherNumBonusCombi2");
- numSelect[1]=chiffre1;
- numSelect[2]=chiffre2;
- int j=0, k=0, l=0, cpt=0;
- for(int i=1;i<11;i++) {
- while (combi1Id[chiffre2][j] != 0) {
- while (bonusId[i][k] != 0) {
- //System.out.println(bonusId[i][k] +"=="+ combi1Id[chiffre2][j]);
- if (bonusId[i][k] == combi1Id[chiffre2][j]) {
- num2_bonusCpt[i]++;
- num2_bonusId[i][cpt++]=bonusId[i][k];
- j++;
- k=0;
- }
- k++;
- }
- k = 0;
- j++;
- }
- j = 0;
- cpt=0;
- }
- for (int i=0; i<11;i++) {
- /*for (int p=1; p<50;p++) {
- System.out.print(combi1Id[i][p]+", ");
- }*/
- System.out.println(i+": "+num2_bonusCpt[i]);
- while(num2_bonusId[i][l]!=0){
- System.out.print(num2_bonusId[i][l]+", ");
- l++;
- }
- System.out.println();
- l=0;
- }
-
- }
-
- /**
- * On va essayer de trouver les correspondances d'identifiants entre les 3 chiffres entres en parametre et les chiffres bonus potentiels dans les lignes de la tables, pour les stocker dans un tableau, et sur un second qui va compter les correspondances entre le premier chifre, le second chiffre, le troisieme chiffre et les chiffres bonus potentiels
- * @param chiffre1, (int) le premier chiffre donne;
- * @param chiffre2, (int) le second chiffre donne;
- * @param chiffre3, (int) le troisieme chiffre donne;
- *