TP N°6: Initiation aux Bases de données SQLite

Page 1 sur 5Lecteur de document UniversityLib

TP N°6: Initiation aux Bases de données SQLite

Database Management Systems (Software Engineering) · lab

TP N°6

Initiation aux Bases de données

SQLite (1)

1. Interface graphique

Soit l’interface qui suit

Le premier écran affiché à l’étudiant est le

suivant :

Ecran1

Si l’étudiant omet de remplir un champ,

l’AlertDialog suivant s’affiche.

Ecran2

Page 1 sur 5

Si l’utilisateur décide d’annuler sa saisie, il

peut appuyer sur le bouton « ANNULER » et

l’écran suivant s’affiche

Ecran 3

Q1. Créer l’interface d’inscription des étudiants.

Q2. Programmer les deux messages d’alertes visualisés par l’écran 2 et l’écran 3

Element

Id de l’objet

dans le fichier id

Ecran 1

Nom de l’objet

dans la classe java

Prenom

Le titre « Insription PFE » Titre

La zone de saisie « nom » Nom

La zone de saisie

« prénom »

La zone de saisie « Tel »

Phone

La zone de saisie « email » Email

La zone de saisie « login » Login

La zone de saisie « Mot de

Mdp

passe »

Le bouton « VALIDER »

Le bouton « ANNULER »

btnValider

btnAnnuler

Nom

Prenom

Tel

Email

Login

MDP

Publicité

2. Création de la base de données

2.1 Création de la classe abstraite EtudiantBC

public class EtudiantBC {

public EtudiantBC() {}

public static abstract class EtudiantEntry implements BaseColumns

{

public static final String TABLE_NAME = "etudiant";

public static final String COLUMN_NAME_NOM = "nom";

public static final String COLUMN_NAME_PRENOM = "prenom";

public static final String COLUMN_NAME_PHONE = "phone";

public static final String COLUMN_NAME_EMAIL = "email";

public static final String COLUMN_NAME_LOGIN = "login";

public static final String COLUMN_NAME_MDP = "mdp";

}

Page 2 sur 5

private static final String TEXT_TYPE = " TEXT";

private static final String INT_TYPE = " INTEGER";

private static final String COMMA_SEP = ",";

public static final String SQL_CREATE_ENTRIES =

"CREATE TABLE " + …………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………;

public static final String SQL_DELETE_ENTRIES =

"DROP TABLE IF EXISTS " + EtudiantEntry.TABLE_NAME;

}

Cette classe abstraite contient par défaut les champs suivants, on peut ne pas

l’implémenter mais il est conseillé de travailler avec.

Constantes

String

_COUNT

Nombre de lignes

String

_ID

La clé de la table

2.2 Création du DbHelper

public class EtudiantDBHelper extends SQLiteOpenHelper {

public static final int DATABASE_VERSION = 1;

public static final String DATABASE_NAME = "PFE.db";

public EtudiantDBHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

Publicité

}

public void onCreate(SQLiteDatabase db) {

db.execSQL(EtudiantBC.SQL_CREATE_ENTRIES);

}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int

newVersion) {

db.execSQL(EtudiantBC.SQL_DELETE_ENTRIES);

onCreate(db);

}

public void onDowngrade(SQLiteDatabase db, int oldVersion, int

newVersion) {

onUpgrade(db, oldVersion, newVersion);

}

Page 3 sur 5

}

3. Insertion d’un Etudiant

Après avoir vérifié que les champs ne sont pas vides pendant le click sur le bouton

Valider, l’étudiant est insérée dans la base par le code suivant :

ContentValues values = new ContentValues();

values.put(EtudiantBC.EtudiantEntry.COLUMN_NAME_NOM,

Nom.getText().toString());

values.put(………………………………………………………………………………………………………………

…………………………………………………………………);

values.put(………………………………………………………………………………………………………………

…………………………………………………………………);

values.put(………………………………………………………………………………………………………………

…………………………………………………………………);

values.put(………………………………………………………………………………………………………………

…………………………………………………………………);

values.put(………………………………………………………………………………………………………………

…………………………………………………………………);

EtudiantDBHelper mDbHelper = new

EtudiantDBHelper(getApplicationContext());

SQLiteDatabase db = mDbHelper.getWritableDatabase();

long newRowId;

newRowId = db.insert(

………………………………………………………………………………………………,

………………………………………………………,

………………………………………………………);

db.close();

mDbHelper.close();

4. Affichage de la liste d’étudiants

Une fois insérée, un écran contenant les noms des étudiants sera affiché comme suit

Pour ce faire il faut :

a. Créer une nouvelle activité ListEtudiant dont l’interface contient initialement un

ListView (id= idlistetu)

Publicité

Page 4 sur 5

b. Créer un autre layout Ligne_Etudiant.xml représentant une ligne de la liste Etudiant

Il s’agit d’un TextView ayant comme id = nometud et un autre TextView (id=preetud)

c. Créer le DbHelper et la méthode getDbHelper comme suit

private EtudiantDBHelper dbHelper = null;

public EtudiantDBHelper getDbHelper() {

if (dbHelper==null) {

dbHelper = new EtudiantDBHelper(this);

}

return dbHelper;

}

d. Créer l’adaptateur à partir du curseur sql.

private SimpleCursorAdapter adapter = null;

public SimpleCursorAdapter getAdapter() {

if (adapter==null) {

SQLiteDatabase db = getDbHelper()

.getReadableDatabase();

Cursor c = db

.rawQuery( "…………………………………………………………" +

"………………………………………………………………

"+……………………………………………………………………, null);

adapter = new SimpleCursorAdapter(this,

R.layout.ligne_etudiant,

c,

new String[]

{EtudiantBC.EtudiantEntry.COLUMN_NAME_NOM,EtudiantBC.EtudiantEntry.COLUM

N_NAME_PRENOM },

new int[]{R.id.nometud, R.id.preetud},

,

0);

}

return adapter;

}

e. Dans la méthode onCreate créer votre adaptateur et l’affecter à la

liste Etudiants

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_list_etudiant);

ListEtudiant=(ListView)findViewById(R.id.idlistetu);

ListEtudiant.setAdapter(getAdapter());

}

f. Revenir à la première interface d’insertion pour programmer le

passage vers la liste d’étudiants

Page 5 sur 5