1 package com.example.area;
3 import android.content.Context;
4 import android.database.Cursor;
5 import android.database.sqlite.SQLiteDatabase;
6 import android.util.Log;
8 import java.util.ListIterator;
9 import java.util.Vector;
26 private static final String
TAG =
"_BaseDeDonnees";
27 private SQLiteDatabase
bdd = null;
53 private static final String
DEBUT_REQUETE_INSERTION_PARTIE =
"INSERT INTO Partie(idPartie, idRencontre, idJoueurA, idJoueurB, idJoueurW, idJoueurX, nbManchesGagnantes, nbPointsParManche, typePartie, debut) VALUES (NULL,";
55 private static final String
DEBUT_REQUETE_INSERTION_RENCONTRE =
"INSERT INTO Rencontre(idRencontre, idEquipeA, idEquipeB, nbPartiesGagnantes, estFinie, horodatage) VALUES (NULL,";
78 Log.d(TAG,
"ouvrir()");
80 bdd = SQLiteAREA.getWritableDatabase();
88 Log.d(TAG,
"fermer()");
102 Cursor curseurResultat = bdd.rawQuery(requete,null);
104 Log.d(TAG,
"effectuerRequete() : Exécution de la requete : " + requete);
106 Log.d(TAG,
"effectuerRequete() : Nombre de résultats : " + Integer.toString(curseurResultat.getCount()));
108 return curseurResultat;
117 Vector<Equipe> equipes =
new Vector<Equipe>();
118 String requete =
"SELECT * FROM Equipe";
122 for (
int i = 0; i < curseurResultat.getCount(); i++)
124 curseurResultat.moveToNext();
125 Log.d(TAG,
"idEquipe = " + curseurResultat.getString(INDEX_ID_EQUIPE) +
" | " +
"nomClub = " + curseurResultat.getString(INDEX_NOM_CLUB));
126 equipes.add(
new Equipe(curseurResultat.getString(INDEX_NOM_CLUB),
getJoueurEquipe(curseurResultat.getInt(INDEX_ID_EQUIPE))));
139 Vector<Joueur> joueurs =
new Vector<Joueur>();
140 String requete =
"SELECT * FROM Joueur WHERE idEquipe = " + Integer.toString(idEquipe);
144 for (
int i = 0; i < curseurResultat.getCount(); i++)
146 curseurResultat.moveToNext();
147 Log.d(TAG,
"numeroLicence = " + curseurResultat.getString(INDEX_ID_JOUEUR) +
" | " +
"nom = " + curseurResultat.getString(INDEX_NOM_JOUEUR) +
" | " +
"prenom = " + curseurResultat.getString(INDEX_PRENOM_JOUEUR));
148 joueurs.add(
new Joueur(curseurResultat.getString(INDEX_NOM_JOUEUR),curseurResultat.getString(INDEX_PRENOM_JOUEUR),curseurResultat.getInt(INDEX_ID_JOUEUR)));
162 String requete =
"SELECT * FROM Joueur WHERE numeroLicence = " + Integer.toString(numeroLicence);
165 if(curseurResultat.getCount() == 0)
168 curseurResultat.moveToNext();
169 Log.d(TAG,
"numeroLicence = " + curseurResultat.getString(INDEX_ID_JOUEUR) +
" | " +
"nom = " + curseurResultat.getString(INDEX_NOM_JOUEUR) +
" | " +
"prenom = " + curseurResultat.getString(INDEX_PRENOM_JOUEUR));
170 joueur =
new Joueur(curseurResultat.getString(INDEX_NOM_JOUEUR),curseurResultat.getString(INDEX_PRENOM_JOUEUR),curseurResultat.getInt(INDEX_ID_JOUEUR));
182 Vector<Partie> parties =
new Vector<Partie>();
183 Vector<Joueur> joueursA =
new Vector<Joueur>();
184 Vector<Joueur> joueursB =
new Vector<Joueur>();
186 String requete =
"SELECT * FROM Partie WHERE idRencontre = " + Integer.toString(idRencontre);
190 for (
int i = 0; i < curseurResultat.getCount(); i++)
192 curseurResultat.moveToNext();
193 Log.d(TAG,
"idPartie = " + curseurResultat.getString(INDEX_ID_PARTIE) +
" | " +
"idRencontre = " + curseurResultat.getString(INDEX_ID_RENCONTRE) +
" | " +
"idJoueurA = " + curseurResultat.getString(INDEX_ID_JOUEUR_A) +
" | " +
" idJoueurB = " + curseurResultat.getString(INDEX_ID_JOUEUR_B) +
" | " +
" idJoueurW = " + curseurResultat.getString(INDEX_ID_JOUEUR_W)+
" | " +
" idJoueurX = " + curseurResultat.getString(INDEX_ID_JOUEUR_X) +
" | " +
" typePartie = " + curseurResultat.getString(INDEX_TYPE_PARTIE) +
" | " +
" fin = " + curseurResultat.getString(INDEX_FIN_PARTIE));
195 joueursA.add(
getJoueur(curseurResultat.getInt(INDEX_ID_JOUEUR_A)));
196 joueursB.add(
getJoueur(curseurResultat.getInt(INDEX_ID_JOUEUR_W)));
200 joueursA.add(
getJoueur(curseurResultat.getInt(INDEX_ID_JOUEUR_B)));
201 joueursB.add(
getJoueur(curseurResultat.getInt(INDEX_ID_JOUEUR_X)));
204 parties.add(
new Partie(curseurResultat.getInt(INDEX_NB_MANCHES_GAGNANTES),curseurResultat.getInt(INDEX_NB_POINTS_PAR_MANCHES),(Vector<Joueur>)joueursA.clone(),(Vector<Joueur>)joueursB.clone(),curseurResultat.getInt(INDEX_ID_PARTIE)));
206 if (curseurResultat.getString(INDEX_FIN_PARTIE) != null)
207 parties.lastElement().setEstFinie(
true);
209 parties.lastElement().setManches(
getSetsPartie(parties.lastElement().getId()));
224 Vector<Partie> parties = rencontre.
getParties();
225 ListIterator<Partie> it = parties.listIterator();
237 Log.d(TAG,
"insererParties() : " + requete);
239 bdd.execSQL(requete);
250 Cursor curseurResultat =
effectuerRequete(DEBUT_REQUETE_ID_EQUIPE + nomEquipe +
"'");
251 curseurResultat.moveToNext();
252 if (curseurResultat.getCount() == 1)
253 return (curseurResultat.getInt(0));
265 bdd.execSQL(DEBUT_REQUETE_INSERTION_EQUIPE + equipe.
getNomClub() +
"'");
267 curseurResultat.moveToNext();
268 equipe.
setId(curseurResultat.getInt(0));
280 Cursor curseurResultat =
effectuerRequete(DEBUT_REQUETE_PRESENCE_JOUEUR + idJoueur +
"'");
281 if (curseurResultat.getCount() == 0)
294 bdd.execSQL(DEBUT_REQUETE_INSERTION_JOUEUR + Integer.toString(joueur.
getNumLicence()) +
"," + Integer.toString(equipe.
getId()) +
",'" + joueur.
getNom() +
"','" + joueur.
getPrenom() +
"')");
306 Log.d(TAG,
"insererRencontre() Nouvelle équipe");
319 for (
int i=0; i < equipe.
getJoueurs().size(); i++)
341 requete = DEBUT_REQUETE_INSERTION_RENCONTRE + Integer.toString(rencontre.
getEquipeA().
getId()) +
"," + Integer.toString(rencontre.
getEquipeB().
getId()) +
"," + Integer.toString(rencontre.
getNbPartiesGagnantes()) +
"," + FIN_REQUETE_INSERTION_RENCONTRE;
342 bdd.execSQL(requete);
344 curseurResultat.moveToNext();
345 rencontre.
setId(curseurResultat.getInt(0));
347 Log.d(TAG,
"insererRencontre() : Insertion de la rencontre avec l'ID : " + Integer.toString(rencontre.
getId()));
358 String requete = DEBUT_REQUETE_TERMINER_PARTIE + Integer.toString(idPartie);
359 bdd.execSQL(requete);
368 Log.d(TAG,
"commencerSet()");
370 String requete =
"SELECT * FROM SCORE WHERE idPartie=" + Integer.toString(partie.
getId()) +
" AND numeroSet=" + Integer.toString(partie.
getManches().size());
373 if (curseurResultat.getCount() == 0)
375 requete =
"INSERT INTO Score(idPartie,numeroSet, pointsJoueurEquipeA, pointsJoueurEquipeB, debut) VALUES (" + Integer.toString(partie.
getId()) +
"," + Integer.toString(partie.
getManches().size()) +
",0,0,DATETIME('now'))";
376 Log.d(TAG,
"commencerSet() : " + requete);
377 bdd.execSQL(requete);
387 Log.d(TAG,
"terminerSet()");
390 String requete =
"UPDATE Score SET fin=DATETIME('now'),pointsJoueurEquipeA=" + Integer.toString(partie.
getManches().lastElement().elementAt(0)) +
",pointsJoueurEquipeB=" + Integer.toString(partie.
getManches().lastElement().elementAt(1)) +
" WHERE idPartie=" + Integer.toString(partie.
getId()) +
" AND numeroSet=" + Integer.toString(partie.
getManches().size()-1) +
"";
391 Log.d(TAG,
"terminerSet() : " + requete);
392 bdd.execSQL(requete);
402 Log.d(TAG,
"getSetsPartie()");
404 Vector<Vector<Integer>> manches =
new Vector<>();
405 Vector<Integer> mancheActuelle =
new Vector<Integer>();
406 String requete =
"SELECT pointsJoueurEquipeA,pointsJoueurEquipeB FROM Score WHERE idPartie=" + Integer.toString(idPartie);
409 for (
int i= 0; i < curseurResultat.getCount(); i++)
411 curseurResultat.moveToNext();
412 Log.d(TAG,
"getSetsPartie() : Score joueurA = " + curseurResultat.getString(0));
413 Log.d(TAG,
"getSetsPartie() : Score joueurB = " + curseurResultat.getString(1));
414 mancheActuelle.add(curseurResultat.getInt(0));
415 mancheActuelle.add(curseurResultat.getInt(1));
416 manches.add((Vector<Integer>) mancheActuelle.clone());
417 mancheActuelle.clear();
void ouvrir()
Ouvre un accés à la base de données.
static final String REQUETE_ID_RENCONTRE
static final int INDEX_ID_JOUEUR_B
int getNumLicence()
Accesseur de l'attribut numLicence.
Equipe getEquipeA()
Accesseur de l'attribut equipeA.
Vector< Vector< Integer > > getSetsPartie(int idPartie)
Permet d'effectuer une requete pour réuperer les sets d'une partie.
void insererJoueur(Joueur joueur, Equipe equipe)
Permet d'effectuer une requete pour insérer un joueur.
static final int INDEX_NOM_JOUEUR
void setEquipeB(Equipe equipe)
static final String DEBUT_REQUETE_INSERTION_JOUEUR
void insererParties(Rencontre rencontre)
Permet d'effectuer une requete pour insérer les parties d'une rencontre.
Vector< Joueur > getJoueursA()
Accesseur de l'attribut joueursA.
int getId()
Accesseur de l'attribut iD.
static final int INDEX_FIN_PARTIE
static final int INDEX_ID_JOUEUR_W
boolean verifierPresenceJoueur(int idJoueur)
Permet d'effectuer une pour vérifier la présence d'un joueur en BDD.
static final int INDEX_NB_MANCHES_GAGNANTES
Rencontre insererRencontre(Rencontre rencontre)
Permet d'effectuer une requete pour insérer une rencontre.
void setEquipeA(Equipe equipe)
static final String REQUETE_ID_EQUIPE
Vector< Joueur > getJoueurs()
Accesseur de la l'attribut joueurs.
static final int INDEX_ID_PARTIE
String getNom()
Accesseur de l'attribut nom.
static final int INDEX_ID_JOUEUR
Equipe verifierPresenceEquipe(Equipe equipe)
Permet d'effectuer une requete pour vérifier la présence d'une équipe en BDD et l'insère si elle n'es...
BaseDeDonnees(Context context)
Constructeur de la classe BaseDeDonnees.
Vector< Joueur > getJoueursB()
Accesseur de l'attribut joueursB.
static final String DEBUT_REQUETE_PRESENCE_JOUEUR
static final int INDEX_ID_RENCONTRE
static final int INDEX_TYPE_PARTIE
String getPrenom()
Accesseur de l'attribut prenom.
static final int INDEX_ID_JOUEUR_A
Equipe insererEquipe(Equipe equipe)
Permet d'effectuer une requete pour insérer une équipe.
Vector< Vector< Integer > > getManches()
void terminerPartie(int idPartie)
Permet d'effectuer une requete terminer une partie.
static final String DEBUT_REQUETE_TERMINER_PARTIE
Cursor effectuerRequete(String requete)
Permet d'effectuer une requete sur la base de données.
static final String DEBUT_REQUETE_INSERTION_RENCONTRE
Joueur getJoueur(int numeroLicence)
Permet d'effectuer une requete pour récupérer un joueur grâce à son numéro de licence.
void terminerSet(Partie partie)
Permet d'effectuer une requete pour terminer un set.
Classe qui permet la création de la base de données.
int getNbPartiesGagnantes()
Accesseur de l'attribut nbPartiesGagnantes.
int getIdEquipe(String nomEquipe)
Permet d'effectuer une requete pour récupérer l'identifiant d'une équipe grâce à son nom...
static final String FIN_REQUETE_INSERTION_RENCONTRE
static final String DEBUT_REQUETE_INSERTION_PARTIE
static final String DEBUT_REQUETE_INSERTION_EQUIPE
Vector< Equipe > getEquipes()
Permet d'effectuer une requete pour récupérer toutes les équipes.
Classe qui permet la gestion d'une rencontre entre deux équipes.
Classe permettant de manipuler la base de données.
static final int INDEX_NB_POINTS_PAR_MANCHES
static final int INDEX_PRENOM_JOUEUR
final String getNomClub()
Accesseur de la l'attribut nomClub.
Classe regroupant les informations d'une équipe.
Vector< Joueur > getJoueurEquipe(int idEquipe)
Permet d'effectuer une requete pour récupérer tout les joueurs d'une équipe.
static final int POSITION_DEUXIEME_JOUEUR
Classe regroupant les informations d'un joueur.
int getNbManchesGagnantes()
Accesseur de l'attribut nbManchesGagnantes.
static final int TYPE_PARTIE_SIMPLE
void fermer()
Ferme l'accés à la base de données.
static final int INDEX_ID_EQUIPE
int getNbPointsParManche()
Accesseur de l'attribut nbPointsParManche.
static final int INDEX_NOM_CLUB
Classe permettant la gestion d'une partie.
void commencerSet(Partie partie)
Permet d'effectuer une requete pour commencer un set.
static final String DEBUT_REQUETE_ID_EQUIPE
static final int INDEX_ID_JOUEUR_X
Equipe getEquipeB()
Accesseur de l'attribut equipeB.
void insererJoueursEquipe(Equipe equipe)
Permet d'effectuer une requete pour insérer les joueurs d'une équipe.
Vector< Partie > getParties()
Accesseur de l'attribut parties.
static final int POSITION_PREMIER_JOUEUR
static final int TYPE_PARTIE_DOUBLE
Vector< Partie > getParties(int idRencontre)
Permet d'effectuer une requete pour récupérer les parties d'une rencontre.