Consultation d’une base de données sur un téléphone portable
(sous J2ME)
Réalisé par: Eddakaki Moncef
Bourhaleb Mohammed Encadré par : Mr.Eleuldj
PLAN
-Introduction -Rappel
-Présentation des APIs disponibles pour la persistance des données :
• RMS(Record Management System) KXML…
-Démonstration -Conclusion
Introduction
• le marché du téléphone portable est en pleine expansion avec plus de 35% de croissance par année.
• Ces téléphones sont d’année en année plus puissants, plus
aptes à remplir des tâches qui étaient précédemment dévolues à des PDA, voire des ordinateurs portables.
• J2ME offre l’avantage de la portabilité et de la réutilisation de composants Java.
Rappel
L'API du CLDC (Connected Limited Device Configuration) se compose de quatre packages :
• java.io : classes pour la gestion des entrées/sorties par flux
• java.lang : classes de base du langage java :String…
• java.util : classes utilitaires notamment pour gérer les collections, la date et l'heure, ...
• javax.microedition.io : classes pour gérer des connections génériques
Rappel (Suite)
MIDP est un profile standard qui n'est pas défini pour une machine particulière mais pour un
ensemble de machines embarquées possédant des ressources et une interface graphique limitée.
Rappel (Suite)
L'API du MIDP se compose des API du CDLC et de trois packages essentiels:
• javax.microedition.midlet : cycle de vie de l'application
• javax.microedition.lcdui : interface homme machine
• javax.microedition.rms : persistance des données
KXML, RMS ?
• KXML permet de pouvoir gérer des documents XML au sein du code J2ME
• prévu pour s'adapter dans le JAVA KVM
• Très léger (api de taille petite).
RMS
• RMS (Record Management System) est une API de stockage persistent
• RMS (J2ME) Æ SGBD
( autres plateformes )
• méthodes de géstion des Records store
Æ
RMS
• openRecordStore et closeRecordStore
• listRecordStore.
• deleteRecordStore
• Les opérations de base sur les enregistrements
addRecord, deleteRecord ,getRecord,
setRecord, getRecordSize
RMS
• quelques particularités : ÆRecordEnumeration
(
lister tous les enregistrements du Record store)ÆRecordFilter
(
définir un filtre )ÆRecordComparator
(doit être implémentée pour que des enregistr- ements puissent être comparés et donc triés )
RMS
• RecordFilter
• public boolean matches(byte[] arg0) {
String enregistrement = new String(arg0);
[…]
if(enregistrement.equals(AgendaDemo.type)) {
return true;
} else {
return false;
} }
RMS
• RecordComparator
• public int compare(byte[] arg0, byte[] arg1) {
String prenom1 = new String(arg0);
String prenom2 = new String(arg1);
[…]
if(prenom1.compareTo(prenom2)<0) {
return PseudoComparator.PRECEDES;
}
else if(prenom1.compareTo(prenom2)>0) {
return PseudoComparator.FOLLOWS;
} else {
return PseudoComparator.EQUIVALENT;
} }
RMS
• getNumRecords
• getName
• getNextRecordID
J2ME sous Eclipse
Il faut, en plus du Wireless Toolkit, disposer du plugin eclipseme permettant :
• La Création d’un Projet Milet Suite
• La Création d’une Midlet
• support de Eclipse pour lancer un émulateur J2ME
J2ME sous Eclipse(Suite)
Démonstration
Création d’une Midlet Suite : RDVAgenda comportant deux Midlets :
• L’une permettant la saisie de la date et de l’heure du RDV.
• L’autre permettent d’afficher la liste des RDV.
Conclusion
• même si les possibilités du RMS sont relativement simples, il est possible
d’obtenir des résultats avancés, comme la gestion des tris ou des filtres des résultats obtenus.
• l’usage de RMS pour la persistance des
données, reste suffisant pour des application mobiles.