From 177283a7d94d075d55e0afc12a78fa94bd395173 Mon Sep 17 00:00:00 2001 From: NicolasFabregas Date: Mon, 18 Jan 2021 13:01:02 +0100 Subject: [PATCH] Remplissage de la DB avec l'excel --- src/main/java/fr/myny/database/DataBase.java | 218 +++++++++++++++--- .../java/fr/myny/database/DataBaseTest.java | 17 +- 2 files changed, 196 insertions(+), 39 deletions(-) diff --git a/src/main/java/fr/myny/database/DataBase.java b/src/main/java/fr/myny/database/DataBase.java index 6ff5c16..222195f 100644 --- a/src/main/java/fr/myny/database/DataBase.java +++ b/src/main/java/fr/myny/database/DataBase.java @@ -3,20 +3,16 @@ package fr.myny.database; import java.sql.*; import java.util.*; import java.io.*; -import java.util.concurrent.*; -import com.mysql.jdbc.Driver; -import org.mariadb.jdbc.internal.com.read.dao.Results; - -import javax.sql.DataSource; +import com.opencsv.CSVReader; /** * 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 String url="jdbc:mariadb://vachot.fr:3306?user=mynynicolas&password=Bw0po64*"; - public static String url="jdbc:mariadb://phpmyadmin.vachot.fr:3306?db=myny&user=mynynicolas&password=Bw0po64*"; + //public static String url="jdbc:mariadb://phpmyadmin.vachot.fr:3306?db=myny&user=mynynicolas&password=Bw0po64*"; Connection conn; /** * Le constructeur de DataBase @@ -28,11 +24,161 @@ public class DataBase { }*/ } + /** * La methode de remplissage de la base de donnees */ public void fillDataBase(){ + /*String sql="INSERT INTO 'myny.Test_Table'" + + " ('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";*/ + String sql="INSERT INTO myny.Test_Table" + + " (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 { + Scanner sc = new Scanner(new File("c:/Users/cocof/Bureau/nouveau_loto.csv")); + sc.useDelimiter(";|\\n"); //sets the delimiter pattern + int i=0,j; + String line=sc.nextLine(); + line=""; + String date, jour, mois, an; + while (sc.hasNext()) //returns a boolean value + { + j=(i%25)+1; + if(j==1) { + line=line+'('; + line=line+sc.next().replace(",","."); + line=line+';'; + } + if(j<25 && j>1) { + if (j==2 ||j==11){ + line=line+"\'"+sc.next().replace(",",".")+"\',"; + } + 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); + line=line+"\'"+an+"-"+mois+"-"+jour+"\',"; + } + else{ + line=line+sc.next().replace(",","."); + line=line+';'; + } + } + if(j==25) { + line=line+"\'"+sc.next().replace(",",".")+"\'"; + line=line+')'; + line=line.replaceAll("\\s",""); + line = line.replaceAll(";", ","); + if(sc.hasNext()) { + line = line+ ","; + } + else{ + line = line+ ";"; + } + //System.out.println(line); + sql=sql+line; + line=""; + } + i++; + //System.out.println(sc.nextLine()); + //System.out.print(sc.next()); //find and returns the next complete token from this scanner + } + System.out.println(sql); + //System.out.println(sql); + /*CSVReader reader = new CSVReader(new FileReader("c:/Users/cocof/Bureau/nouveau_loto.csv")); + String[] nextLine=reader.readNext(); + while ((nextLine = reader.readNext()) != null) { + // nextLine[] is an array of values from the line + for (int j = 0; j < nextLine.length - 1; j++) { + if (j==0){ + sql=sql+"("; + } + sql=sql+nextLine[j]; + if (j==nextLine.length-1){ + sql=sql+"),"; + } + else{ + sql=sql+","; + } + //System.out.println(nextLine[j]); + } + sql=sql+";"; + } + System.out.println(sql); + + conn = DriverManager.getConnection(url); + if(conn!=null) { + Statement stmt = conn.createStatement(); + stmt.executeQuery(sql); + conn.commit(); + System.out.println("statement cree"); + }*/ + } + catch (Exception e){ + System.out.println(e.getMessage()); + } + try { + conn = DriverManager.getConnection(url); + if(conn!=null) { + Statement stmt = conn.createStatement(); + stmt.executeQuery(sql); + conn.commit(); + //conn.close(); + System.out.println("statement cree"); + } + } catch (SQLException e) { + System.out.println("oskour"); + System.out.println(e.getMessage()); + } } /** @@ -47,36 +193,39 @@ public class DataBase { */ public void createDataBase() { String sql="CREATE TABLE IF NOT EXISTS myny.Test_Table ("+ - " annee_numero_de_tirage INTEGER,"+ - " jour_de_tirage VARCHAR(10),"+ - " date_de_tirage DATE,"+ - " date_de_forclusion DATE,"+ - " boule_1 TINYINT,"+ - " boule_2 TINYINT,"+ - " boule_3 TINYINT,"+ - " boule_4 TINYINT,"+ - " boule_5 TINYINT,"+ - " numero_chance TINYINT,"+ - " combinaison_gagnante_en_ordre_croissant varchar(20),"+ - " nombre_de_gagnant_au_rang1 INTEGER,"+ - " rapport_du_rang1 INTEGER,"+ - " nombre_de_gagnant_au_rang2 INTEGER,"+ - " rapport_du_rang2 INTEGER,"+ - " nombre_de_gagnant_au_rang3 INTEGER,"+ - " rapport_du_rang3 INTEGER,"+ - " nombre_de_gagnant_au_rang4 INTEGER,"+ - " rapport_du_rang4 INTEGER,"+ - " nombre_de_gagnant_au_rang5 INTEGER,"+ - " rapport_du_rang5 INTEGER,"+ - " nombre_de_gagnant_au_rang6 INTEGER,"+ - " rapport_du_rang6 INTEGER,"+ - " numero_jokerplus INTEGER,"+ - " devise VARCHAR(10));"; + " annee_numero_de_tirage INTEGER,"+ //1 + " jour_de_tirage VARCHAR(10),"+ //2 VARCHAR + " date_de_tirage DATE,"+ //3 DATE + " date_de_forclusion DATE,"+ //4 DATE + " boule_1 TINYINT,"+ //5 + " boule_2 TINYINT,"+ //6 + " boule_3 TINYINT,"+ //7 + " boule_4 TINYINT,"+ //8 + " boule_5 TINYINT,"+ //9 + " numero_chance TINYINT,"+ //10 + " combinaison_gagnante_en_ordre_croissant varchar(20),"+//11 VARCHAR + " nombre_de_gagnant_au_rang1 INTEGER,"+ //12 + " rapport_du_rang1 INTEGER,"+ //13 + " nombre_de_gagnant_au_rang2 INTEGER,"+ //14 + " rapport_du_rang2 INTEGER,"+ //15 + " nombre_de_gagnant_au_rang3 INTEGER,"+ //16 + " rapport_du_rang3 INTEGER,"+ //17 + " nombre_de_gagnant_au_rang4 INTEGER,"+ //18 + " rapport_du_rang4 INTEGER,"+ //19 + " nombre_de_gagnant_au_rang5 INTEGER,"+ //20 + " rapport_du_rang5 INTEGER,"+ //21 + " nombre_de_gagnant_au_rang6 INTEGER,"+ //22 + " rapport_du_rang6 INTEGER,"+ //23 + " numero_jokerplus INTEGER,"+ //24 + " devise VARCHAR(10));"; //25 VARCHAR //System.out.println(sql); try { conn = DriverManager.getConnection(url); if(conn!=null) { Statement stmt = conn.createStatement(); + stmt.executeQuery(sql); + conn.commit(); + //conn.close(); System.out.println("statement cree"); } } catch (SQLException e) { @@ -175,7 +324,10 @@ public class DataBase { //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"); - System.out.println("Connected to database"); + if(conn!=null) { + System.out.println("Connected to database"); + System.out.println(conn); + } }catch(SQLException e) { System.out.println("on a des pb:" + e.getMessage()); } diff --git a/src/test/java/fr/myny/database/DataBaseTest.java b/src/test/java/fr/myny/database/DataBaseTest.java index 313a676..0ff7e25 100644 --- a/src/test/java/fr/myny/database/DataBaseTest.java +++ b/src/test/java/fr/myny/database/DataBaseTest.java @@ -5,17 +5,22 @@ import org.junit.jupiter.api.Test; import java.sql.*; import java.util.*; import java.io.*; -import java.util.concurrent.*; -import com.mysql.jdbc.Driver; - -import javax.sql.DataSource; import static org.junit.jupiter.api.Assertions.*; - +import fr.myny.database.*; class DataBaseTest { Connection connexion; @Test - void fillDataBase() { + void fillDataBase() throws SQLException { + + DataBase maDB=new DataBase(); + Connection maCo=maDB.getConnection(); + assertNotNull(maCo); + //maDB.fillDataBase(); + Statement stmt= maDB.conn.createStatement(); + ResultSet rs=stmt.executeQuery("SELECT Count(*) As total From myny.Test_Table Where 1=1"); + System.out.println("nb lignes (changer la ligne juste en dessous si on modifie le nb de col): "+rs.getInt("total")); + assertEquals(1317,rs); } @Test