622 lines
30 KiB
Java
622 lines
30 KiB
Java
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
|
|
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 {
|
|
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 {
|
|
conn = this.getConnection();
|
|
if (conn != null) {
|
|
ps=conn.prepareStatement(sql);
|
|
for(int a=0;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)*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
|
|
* @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 tabl
|
|
* @deprecated
|
|
*/
|
|
public int updateTable(String filePath) throws FileNotFoundException {
|
|
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 (SQLException e) {
|
|
System.out.println("updateDataBase probleme");
|
|
System.out.println(e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
} catch (SQLException 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
|
|
* @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) throws FileNotFoundException {
|
|
//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 (SQLException e) {
|
|
System.out.println("updateDataBasev2 probleme");
|
|
System.out.println(e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
} catch (SQLException 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 suppression des lignes strictement supérieures 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;
|
|
}
|
|
}
|