Top Banner
1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente la plus part des fonctionnalités du SQL92(standard). SQLite utilise donc la plus part des commandes SQL (CREATE, INSERT, UPDATE, DELETE, et SELECT). SQLite ne nécessite pas de serveur de bases de données pour fonctionner. Vous pouvez télécharger la dernière version de SQLite à https://www.sqlite.org/download.html Types de données : SQLite n’accepte que 5 types de données : Type Définition NULL Valeur vide INTEGER Entier signé REAL Nombre réel TEXT VARCHAR Champ texte BLOB Champ binaire (image) Vous pouvez utiliser SQLite pour vos projets qui utilisent une base de données locale. Il suffit de télécharger la dll SQLite3 . La création de la BD pourra se faire par l’invite commandes ou en téléchargeant (et installant) l’outil SQLiteBrowser. Les accès à la BD SQlite peuvent se faire par JAVA, C# et Android etc… Pour utiliser SQLite avec Android, vous n’avez pas besoins de télécharger et d’exécuter quoi que ce soit puisque ce moteur de bases de données vient avec Android. Il vous suffit d’utiliser les classes nécessaires d’Android pour créer et manipuler une base de données SQLite. Pour la version pc, vous pouvez créer la BD de deux façons : Par l’invite de commande .open Nombd ouvre une base de données existante ou créer une base de donnée si celle-ci n’existe pas. (Remarquez le point devant open).
20

SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

Mar 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

1 Denis Brunet Saliha Yacoub

SQLite et Android SQLite

SQLite est un moteur de bases de donneacutees libre qui impleacutemente la plus part des fonctionnaliteacutes

du SQL92(standard) SQLite utilise donc la plus part des commandes SQL (CREATE INSERT

UPDATE DELETE et SELECT)

SQLite ne neacutecessite pas de serveur de bases de donneacutees pour fonctionner Vous pouvez

teacuteleacutecharger la derniegravere version de SQLite agrave httpswwwsqliteorgdownloadhtml

Types de donneacutees SQLite nrsquoaccepte que 5 types de donneacutees

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT VARCHAR

Champ texte

BLOB Champ binaire (image)

Vous pouvez utiliser SQLite pour vos projets qui utilisent une base de donneacutees locale Il suffit de

teacuteleacutecharger la dll SQLite3 La creacuteation de la BD pourra se faire par lrsquoinvite commandes ou en

teacuteleacutechargeant (et installant) lrsquooutil SQLiteBrowser Les accegraves agrave la BD SQlite peuvent se faire par

JAVA C et Android etchellip

Pour utiliser SQLite avec Android vous nrsquoavez pas besoins de teacuteleacutecharger et drsquoexeacutecuter quoi que

ce soit puisque ce moteur de bases de donneacutees vient avec Android Il vous suffit drsquoutiliser les

classes neacutecessaires drsquoAndroid pour creacuteer et manipuler une base de donneacutees SQLite

Pour la version pc vous pouvez creacuteer la BD de deux faccedilons

Par lrsquoinvite de commande

open Nombd ouvre une base de donneacutees existante ou creacuteer une base de donneacutee si celle-ci

nrsquoexiste pas (Remarquez le point devant open)

2 Denis Brunet Saliha Yacoub

Vous pouvez encore plus facile teacuteleacutecharger et installer SqliteBrowser agrave lrsquoadresse

httpsqlitebrowserorg pour creacuteer et geacuterer vos base de donneacutees SQLite

Par lrsquoonglet Nouvelle base de donneacutees vous pouvez creacuteer votre base de donneacutees et creacuteer et

geacuterer vos tables

3 Denis Brunet Saliha Yacoub

4 Denis Brunet Saliha Yacoub

JDBC et SQlite Voir le cours laquoJdbc en Brefraquo Par le menu Fichier Project Structure agrave lrsquoonglet Libraire Ajouter

5 Denis Brunet Saliha Yacoub

SQLite sur Android

Deux meacutethodes populaires pour acceacuteder et exploiter agrave une base de donneacutees SQLite

avec Android Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle

qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la prog)

La meacutethode qui sera deacutetailleacutee ici est celle qui utilise la classe SQLiteDatabase

La classe SQLiteDatabase a des meacutethodes qui permettent de faire une gestion complegravete

drsquoune base de donneacutees SQLite sur appareils mobiles Android

Voici quelques meacutethodes de cette classe

Meacutethodes Rocircle

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT

rawQuery(String sql String[] selectionArgs)

Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name int mode CursorFactory factory)

Retourne un SQLiteDatabe Les paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre null Le Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

Les curseurs sont des variables (zone meacutemoire) utiliseacutees pour reacutecupeacuterer le reacutesultat de requecirctes de type SELECT Les curseurs sont des objets qui contiennent les reacutesultats dune recherche dans une base de donneacutees Ce sont en fait des objets qui fonctionnent comme les tableaux Ils contiennent les colonnes et lignes qui ont eacuteteacute renvoyeacutees par la requecircte On y accegravede ligne par ligne puis colonne par colonne

Un objet de type Curseur possegravede un pointeur sur lrsquoenregistrement courant Agrave la

reacuteception de cet objet le pointeur se trouve devant le premier enregistrement

6 Denis Brunet Saliha Yacoub

Voici quelques meacutethodes de lrsquoobjet Curseur

Pour vous deacuteplacer entre les enregistrements vous pouvez utiliser les meacutethodes

moveToFirst () et moveToNext () (MoveToPrevious() et moveToLast() pour une

lecture inverse)

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute

atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString

(columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le

columnIndex est lrsquoindex de la colonne agrave acceacuteder

Cursor fournit eacutegalement la meacutethode getColumnIndexOrThrow (String) qui permet

dobtenir lindex de colonne pour un nom de colonne de la table

Un curseur doit ecirctre fermeacute avec la meacutethode close()

Exemple drsquoapplication utilisant SQLite et Android

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 2: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

2 Denis Brunet Saliha Yacoub

Vous pouvez encore plus facile teacuteleacutecharger et installer SqliteBrowser agrave lrsquoadresse

httpsqlitebrowserorg pour creacuteer et geacuterer vos base de donneacutees SQLite

Par lrsquoonglet Nouvelle base de donneacutees vous pouvez creacuteer votre base de donneacutees et creacuteer et

geacuterer vos tables

3 Denis Brunet Saliha Yacoub

4 Denis Brunet Saliha Yacoub

JDBC et SQlite Voir le cours laquoJdbc en Brefraquo Par le menu Fichier Project Structure agrave lrsquoonglet Libraire Ajouter

5 Denis Brunet Saliha Yacoub

SQLite sur Android

Deux meacutethodes populaires pour acceacuteder et exploiter agrave une base de donneacutees SQLite

avec Android Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle

qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la prog)

La meacutethode qui sera deacutetailleacutee ici est celle qui utilise la classe SQLiteDatabase

La classe SQLiteDatabase a des meacutethodes qui permettent de faire une gestion complegravete

drsquoune base de donneacutees SQLite sur appareils mobiles Android

Voici quelques meacutethodes de cette classe

Meacutethodes Rocircle

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT

rawQuery(String sql String[] selectionArgs)

Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name int mode CursorFactory factory)

Retourne un SQLiteDatabe Les paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre null Le Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

Les curseurs sont des variables (zone meacutemoire) utiliseacutees pour reacutecupeacuterer le reacutesultat de requecirctes de type SELECT Les curseurs sont des objets qui contiennent les reacutesultats dune recherche dans une base de donneacutees Ce sont en fait des objets qui fonctionnent comme les tableaux Ils contiennent les colonnes et lignes qui ont eacuteteacute renvoyeacutees par la requecircte On y accegravede ligne par ligne puis colonne par colonne

Un objet de type Curseur possegravede un pointeur sur lrsquoenregistrement courant Agrave la

reacuteception de cet objet le pointeur se trouve devant le premier enregistrement

6 Denis Brunet Saliha Yacoub

Voici quelques meacutethodes de lrsquoobjet Curseur

Pour vous deacuteplacer entre les enregistrements vous pouvez utiliser les meacutethodes

moveToFirst () et moveToNext () (MoveToPrevious() et moveToLast() pour une

lecture inverse)

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute

atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString

(columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le

columnIndex est lrsquoindex de la colonne agrave acceacuteder

Cursor fournit eacutegalement la meacutethode getColumnIndexOrThrow (String) qui permet

dobtenir lindex de colonne pour un nom de colonne de la table

Un curseur doit ecirctre fermeacute avec la meacutethode close()

Exemple drsquoapplication utilisant SQLite et Android

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 3: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

3 Denis Brunet Saliha Yacoub

4 Denis Brunet Saliha Yacoub

JDBC et SQlite Voir le cours laquoJdbc en Brefraquo Par le menu Fichier Project Structure agrave lrsquoonglet Libraire Ajouter

5 Denis Brunet Saliha Yacoub

SQLite sur Android

Deux meacutethodes populaires pour acceacuteder et exploiter agrave une base de donneacutees SQLite

avec Android Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle

qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la prog)

La meacutethode qui sera deacutetailleacutee ici est celle qui utilise la classe SQLiteDatabase

La classe SQLiteDatabase a des meacutethodes qui permettent de faire une gestion complegravete

drsquoune base de donneacutees SQLite sur appareils mobiles Android

Voici quelques meacutethodes de cette classe

Meacutethodes Rocircle

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT

rawQuery(String sql String[] selectionArgs)

Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name int mode CursorFactory factory)

Retourne un SQLiteDatabe Les paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre null Le Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

Les curseurs sont des variables (zone meacutemoire) utiliseacutees pour reacutecupeacuterer le reacutesultat de requecirctes de type SELECT Les curseurs sont des objets qui contiennent les reacutesultats dune recherche dans une base de donneacutees Ce sont en fait des objets qui fonctionnent comme les tableaux Ils contiennent les colonnes et lignes qui ont eacuteteacute renvoyeacutees par la requecircte On y accegravede ligne par ligne puis colonne par colonne

Un objet de type Curseur possegravede un pointeur sur lrsquoenregistrement courant Agrave la

reacuteception de cet objet le pointeur se trouve devant le premier enregistrement

6 Denis Brunet Saliha Yacoub

Voici quelques meacutethodes de lrsquoobjet Curseur

Pour vous deacuteplacer entre les enregistrements vous pouvez utiliser les meacutethodes

moveToFirst () et moveToNext () (MoveToPrevious() et moveToLast() pour une

lecture inverse)

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute

atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString

(columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le

columnIndex est lrsquoindex de la colonne agrave acceacuteder

Cursor fournit eacutegalement la meacutethode getColumnIndexOrThrow (String) qui permet

dobtenir lindex de colonne pour un nom de colonne de la table

Un curseur doit ecirctre fermeacute avec la meacutethode close()

Exemple drsquoapplication utilisant SQLite et Android

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 4: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

4 Denis Brunet Saliha Yacoub

JDBC et SQlite Voir le cours laquoJdbc en Brefraquo Par le menu Fichier Project Structure agrave lrsquoonglet Libraire Ajouter

5 Denis Brunet Saliha Yacoub

SQLite sur Android

Deux meacutethodes populaires pour acceacuteder et exploiter agrave une base de donneacutees SQLite

avec Android Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle

qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la prog)

La meacutethode qui sera deacutetailleacutee ici est celle qui utilise la classe SQLiteDatabase

La classe SQLiteDatabase a des meacutethodes qui permettent de faire une gestion complegravete

drsquoune base de donneacutees SQLite sur appareils mobiles Android

Voici quelques meacutethodes de cette classe

Meacutethodes Rocircle

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT

rawQuery(String sql String[] selectionArgs)

Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name int mode CursorFactory factory)

Retourne un SQLiteDatabe Les paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre null Le Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

Les curseurs sont des variables (zone meacutemoire) utiliseacutees pour reacutecupeacuterer le reacutesultat de requecirctes de type SELECT Les curseurs sont des objets qui contiennent les reacutesultats dune recherche dans une base de donneacutees Ce sont en fait des objets qui fonctionnent comme les tableaux Ils contiennent les colonnes et lignes qui ont eacuteteacute renvoyeacutees par la requecircte On y accegravede ligne par ligne puis colonne par colonne

Un objet de type Curseur possegravede un pointeur sur lrsquoenregistrement courant Agrave la

reacuteception de cet objet le pointeur se trouve devant le premier enregistrement

6 Denis Brunet Saliha Yacoub

Voici quelques meacutethodes de lrsquoobjet Curseur

Pour vous deacuteplacer entre les enregistrements vous pouvez utiliser les meacutethodes

moveToFirst () et moveToNext () (MoveToPrevious() et moveToLast() pour une

lecture inverse)

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute

atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString

(columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le

columnIndex est lrsquoindex de la colonne agrave acceacuteder

Cursor fournit eacutegalement la meacutethode getColumnIndexOrThrow (String) qui permet

dobtenir lindex de colonne pour un nom de colonne de la table

Un curseur doit ecirctre fermeacute avec la meacutethode close()

Exemple drsquoapplication utilisant SQLite et Android

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 5: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

5 Denis Brunet Saliha Yacoub

SQLite sur Android

Deux meacutethodes populaires pour acceacuteder et exploiter agrave une base de donneacutees SQLite

avec Android Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle

qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la prog)

La meacutethode qui sera deacutetailleacutee ici est celle qui utilise la classe SQLiteDatabase

La classe SQLiteDatabase a des meacutethodes qui permettent de faire une gestion complegravete

drsquoune base de donneacutees SQLite sur appareils mobiles Android

Voici quelques meacutethodes de cette classe

Meacutethodes Rocircle

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT

rawQuery(String sql String[] selectionArgs)

Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name int mode CursorFactory factory)

Retourne un SQLiteDatabe Les paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre null Le Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

Les curseurs sont des variables (zone meacutemoire) utiliseacutees pour reacutecupeacuterer le reacutesultat de requecirctes de type SELECT Les curseurs sont des objets qui contiennent les reacutesultats dune recherche dans une base de donneacutees Ce sont en fait des objets qui fonctionnent comme les tableaux Ils contiennent les colonnes et lignes qui ont eacuteteacute renvoyeacutees par la requecircte On y accegravede ligne par ligne puis colonne par colonne

Un objet de type Curseur possegravede un pointeur sur lrsquoenregistrement courant Agrave la

reacuteception de cet objet le pointeur se trouve devant le premier enregistrement

6 Denis Brunet Saliha Yacoub

Voici quelques meacutethodes de lrsquoobjet Curseur

Pour vous deacuteplacer entre les enregistrements vous pouvez utiliser les meacutethodes

moveToFirst () et moveToNext () (MoveToPrevious() et moveToLast() pour une

lecture inverse)

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute

atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString

(columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le

columnIndex est lrsquoindex de la colonne agrave acceacuteder

Cursor fournit eacutegalement la meacutethode getColumnIndexOrThrow (String) qui permet

dobtenir lindex de colonne pour un nom de colonne de la table

Un curseur doit ecirctre fermeacute avec la meacutethode close()

Exemple drsquoapplication utilisant SQLite et Android

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 6: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

6 Denis Brunet Saliha Yacoub

Voici quelques meacutethodes de lrsquoobjet Curseur

Pour vous deacuteplacer entre les enregistrements vous pouvez utiliser les meacutethodes

moveToFirst () et moveToNext () (MoveToPrevious() et moveToLast() pour une

lecture inverse)

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute

atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString

(columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le

columnIndex est lrsquoindex de la colonne agrave acceacuteder

Cursor fournit eacutegalement la meacutethode getColumnIndexOrThrow (String) qui permet

dobtenir lindex de colonne pour un nom de colonne de la table

Un curseur doit ecirctre fermeacute avec la meacutethode close()

Exemple drsquoapplication utilisant SQLite et Android

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 7: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

7 Denis Brunet Saliha Yacoub

Contenu du fichier activity_mainxml

ltxml version=10 encoding=utf-8gt

ltRelativeLayout xmlnsandroid=httpschemasandroidcomapkresandroid

androidid=+idmyLayout

androidstretchColumns=0

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 8: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

8 Denis Brunet Saliha Yacoub

ltTableLayout

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=Gestion des joueurs

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringNum

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNum

androidinputType=number

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 9: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

9 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringnom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtNom

androidinputType=text

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltTextView androidtext=stringprenom

androidlayout_column=1

androidlayout_width=wrap_content

androidlayout_height=wrap_content

gt

ltEditText androidid=+idedtPrenom

androidinputType=text

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 10: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

10 Denis Brunet Saliha Yacoub

androidlayout_column=2

androidlayout_width=150dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAjouter

androidtext=stringajouter

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnSupprimer

androidtext=stringsupprimer

androidlayout_column=2

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_centerVertical=true

gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnAfficher

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 11: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

11 Denis Brunet Saliha Yacoub

androidtext=stringafficher

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnAffichertout

androidtext=stringaffichertout

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnSuivant

androidtext=stringsuivant

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltButton androidid=+idbtnPrcedent

androidtext=stringprecedent

androidlayout_width=100dp

androidlayout_height=40dp

androidlayout_column=2 gt

ltTableRowgt

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 12: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

12 Denis Brunet Saliha Yacoub

ltTableRow

androidlayout_width=fill_parent

androidlayout_height=fill_parentgt

ltButton androidid=+idbtnPremier

androidtext=stringpremier

androidlayout_column=1

androidlayout_width=100dp

androidlayout_height=40dp

gt

ltTableRowgt

ltTableLayoutgt

ltRelativeLayoutgt

Contenu du fichier stringsxml

ltresourcesgt

ltstring name=app_namegtSqliteExempleltstringgt

ltstring name=NumgtNumeacutero ltstringgt

ltstring name=nomgtNom ltstringgt

ltstring name=prenomgtPrenom ltstringgt

ltstring name =ajoutergt Ajouterltstringgt

ltstring name =supprimergt Supprimerltstringgt

ltstring name =affichergt Afficherltstringgt

ltstring name =affichertoutgt ToutAfficherltstringgt

ltstring name =suivantgt Suivantltstringgt

ltstring name =precedentgt Precedentltstringgt

ltstring name =premiergt Premierltstringgt

ltresourcesgt

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 13: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

13 Denis Brunet Saliha Yacoub

Contenu MainActivityjava

package comexamplesalihayacoubsqliteexemple

import androidappActivity

import androidappAlertDialogBuilder

import androidcontentContext

import androiddatabaseCursor

import androiddatabasesqliteSQLiteDatabase

import androidosBundle

import androidviewView

import androidviewViewOnClickListener

import androidwidgetButton

import androidwidgetEditText

public class MainActivity extends Activity implements OnClickListener

Deacuteclarations

EditText edtNom edtPrenom edtNum

Button btnAfficher btnSupprimer btnAjouter btnAffichertout

Button btnSuivant btnPrcedent btnPremier

SQLiteDatabase bd

Cursor c1 utiliseacute par les boutons suivant et preacuteceacutedent

Override

public void onCreate(Bundle savedInstanceState)

superonCreate(savedInstanceState)

setContentView(Rlayoutactivity_main)

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 14: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

14 Denis Brunet Saliha Yacoub

edtNom = (EditText) findViewById(RidedtNom)

edtPrenom = (EditText) findViewById(RidedtPrenom)

edtNum = (EditText) findViewById(RidedtNum)

btnAjouter = (Button) findViewById(RidbtnAjouter)

btnSupprimer = (Button) findViewById(RidbtnSupprimer)

btnAfficher = (Button) findViewById(RidbtnAfficher)

btnAffichertout = (Button) findViewById(RidbtnAffichertout)

btnSuivant =(Button)findViewById(RidbtnSuivant)

btnPrecdent =(Button)findViewById(RidbtnPrcedent)

btnPremier =(Button)findViewById(RidbtnPremier)

btnAjoutersetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichertoutsetOnClickListener(this)

btnSupprimersetOnClickListener(this)

btnAffichersetOnClickListener(this)

btnSuivantsetOnClickListener(this)

btnPrecdentsetOnClickListener(this)

btnPremiersetOnClickListener(this)

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement

nom VARCHARprenom VARCHAR))

public void onClick(View view)

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 15: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

15 Denis Brunet Saliha Yacoub

if(view==btnAjouter)

if(edtNomgetText()toString()trim()length()==0||

edtPrenomgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer toutes les valeurs)

return

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES( + edtNomgetText() +

+ edtPrenomgetText() + ))

AfficheMessage(Succegraves Information ajouter)

videTexte()

fin bouton ajouter

---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 16: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

16 Denis Brunet Saliha Yacoub

cclose()

AfficheMessage(Les joueurs buffertoString())

----fin afficher tout

Bouton supprimer

if(view==btnSupprimer)

if(edtNumgetText()toString()trim()length()==0)

AfficheMessage(Erreur Entrer un numeacutero de joueur)

return

Cursor c=bdrawQuery(SELECT FROM Joueurs WHERE num=+ edtNumgetText() null)

if(cmoveToFirst())

bdexecSQL(DELETE FROM Joueurs WHERE num= + edtNumgetText() )

AfficheMessage(Succegraves Information deacutetruite)

else

AfficheMessage(Erreur Numeacutero invalide)

videTexte()

fin supprimer

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 17: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

17 Denis Brunet Saliha Yacoub

Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString()

ToastLENGTH_LONG)show()

Fin du premier

bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 18: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

18 Denis Brunet Saliha Yacoub

bouton preacutecedent

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

fin preacutecedent

Bouton afficher un Enregistrement

if(view==btnAfficher)

Cursor c = bdrawQuery(SELECT FROM Joueurs where num= + edtNumgetText()

null)

if (cgetCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(cmoveToFirst())

edtNomsetText(cgetString(1))

edtPrenomsetText(cgetString(2))

fin Afficher

Fin du onClick

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 19: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

19 Denis Brunet Saliha Yacoub

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

public void videTexte()

edtNumsetText()

edtNomsetText()

edtPrenomsetText()

fin

Sources

httpswwwsqliteorgquickstarthtml

Notes de cours de Denis Brunet

httpdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

httpdeveloperandroidcomreferenceandroidcontentContexthtml

httpsopenclassroomscomcoursescreez-des-applications-pour-android

httpwwwuniv-orleansfrlifoMembersJean-FrancoisLalandeenseignementandroidcours-

androidpdf

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai

Page 20: SQLite et Androidsalihayacoub.com/420Ke9/SQLite/SqliteExemple.pdf1 Denis Brunet, Saliha Yacoub SQLite et Android SQLite SQLite est un moteur de bases de données libre qui implémente

20 Denis Brunet Saliha Yacoub

Travail final Partie 2

Pondeacuteration 8

Date de remise le 19 mai avant 16h10

1- Directement sur votre teacuteleacutephonetablette creacuteer la table circuits suivantes en utilisant

SQLite

Colonnes Types et contrainte

IdCircuit integer primary key autoincrement

VilleDepart Varchar

VilleArivee Varchar

Prix REAL

Duree integer

2- Creacuteer lrsquoapplication JDBC-Android qui permet

a Creacuteer la base de donneacutees

b Drsquoajouter un enregistrement

c De supprimer un enregistrement

d Rechercher un circuit selon la ville de deacutepart Srsquoil y a plusieurs circuits on doit

pouvoir se deacuteplacer drsquoun enregistrement agrave lrsquoautre par des boutons suivant et

preacutecedent

Important Le cours sur SQLite et Android sera preacutesenteacute le lundi 09 mai