1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| package com.formation.MenuJeu;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class ScoresBDD {
private static final int VERSION_BDD = 1;
private static final String NOM_BDD = "eleves.db";
private static final String TABLE_SCORES = "table_scores";
private static final String COL_ID = "ID";
private static final int NUM_COL_ID = 0;
private static final String COL_TEMPS = "TEMPS";
private static final int NUM_COL_TEMPS = 1;
private SQLiteDatabase bdd;
private MaBaseSQLite maBaseSQLite;
public ScoresBDD(Context context){
//On créer la BDD et sa table
maBaseSQLite = new MaBaseSQLite(context, NOM_BDD, null, VERSION_BDD);
}
public void open(){
//on ouvre la BDD en écriture
bdd = maBaseSQLite.getWritableDatabase();
}
public void close(){
//on ferme l'accès à la BDD
bdd.close();
}
public SQLiteDatabase getBDD(){
return bdd;
}
public long insertScore(Scores score){
//Création d'un ContentValues (fonctionne comme une HashMap)
ContentValues values = new ContentValues();
//on lui ajoute une valeur associé à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
values.put(COL_TEMPS, score.getTemps());
//on insère l'objet dans la BDD via le ContentValues
return bdd.insert(TABLE_SCORES, null, values);
}
public int updateScore(int id, Scores score){
//La mise à jour d'un score dans la BDD fonctionne plus ou moins comme une insertion
//il faut simple préciser quelle score on doit mettre à jour grâce à l'ID
ContentValues values = new ContentValues();
values.put(COL_TEMPS, score.getTemps());
return bdd.update(TABLE_SCORES, values, COL_ID + " = " +id, null);
}
public int removeScoreWithID(int id){
//Suppression d'un score de la BDD grâce à l'ID
return bdd.delete(TABLE_SCORES, COL_ID + " = " +id, null);
}
public Scores getScoreWithTemps(Long temps){
Cursor c = bdd.query(TABLE_SCORES, new String[] {COL_ID, COL_TEMPS}, COL_TEMPS + " LIKE \"" + temps +"\"", null, null, null, null);
return cursorToScore(c);
}
//Cette méthode permet de convertir un cursor en un score
private Scores cursorToScore(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinon on se place sur le premier élément
c.moveToFirst();
//On créé un score
Scores score = new Scores((long)150);
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
score.setId(c.getInt(NUM_COL_ID));
score.setTemps(c.getLong(NUM_COL_TEMPS));
//On ferme le cursor
c.close();
//On retourne le score
return score;
}
} |