Вы находитесь на странице: 1из 3

Programacin de juegos para mviles

con J2ME

Autor: Alberto Garca Serrano


Curso:
9/10 (85 opiniones) |34066 alumnos|Fecha publicacin: 07/09/2004
Captulo 25:

Almacenamiento. RMS
Enlaces patrocinadosPregunte Experto Java Ya
Nuestros expertos en Java contruyen Pregunte y obtenga su respuesta ya!
JustAnswer.es/Java
Hasta ahora hemos usado la memoria principal del mvil (la RAM) para almacenar
datos temporales, pero al salir del midlet, estos datos son eliminados. Esto plantea
algunos problemas. Por ejemplo, cmo podemos almacenar las puntuaciones mximas
de nuestro juego?
Un dispositivo mvil (al menos por ahora) no dispone de disco duro donde almacenar
informacin permanentemente. J2ME resuelve el problema mediante el RMS (Record
Management System). RMS es un pequeo sistema de bases de datos muy sencillo, pero
que nos permite aadir informacin en una memoria no voltil del mvil. RMS no tiene
nada que ver con JDBC debido a las limitaciones de los dispositivos J2ME, por lo tanto,
el acceso y almacenamiento de la informacin se hace a mucho ms bajo nivel. RMS no
puede ser consultado con sentencias SQL ni nada parecido. En una base de datos RMS,
el elemento bsico es el registro (record). Un registro es la unidad de informacin ms
pequea que puede ser almacenada. Los registros son almacenados en un recordStore
que puede visualizarse como una coleccin de registros. Cuando almacenamos un
registro en el recordStore, a ste se le asigna un identificador nico que identifica
unvocamente al registro.
Para poder utilizar RMS hemos de importar el paquete javax.microedition.rms. Este
paquete nos provee de la clase RecordStore y de cuatro interfaces, de las cuales
solamente profundizaremos en la interfaz RecordEnumeration.
Trabajando con RMS: cubrir todas las capacidades de RMS se escapa del mbito de
este libro. Sin entrar en profundidades, vamos a ver cmo realizar las operaciones
bsicas de almacenamiento, lectura y borrado de registros.

Abrir y errar un recordStore.- Antes de poder almacenar un registro hemos de abrir un


recordStore con el mtodo openRecordStore().
static RecordStore openRecordStore(String nombre, bolean crear)
El parmetro nombre es el nombre de la base de datos. El nombre puede tener un
tamao de 32 caracteres. El parmetro crear, si tiene su valor a true, crear la base de
datos si no existe. Cuando creamos un recordStore, slo puede ser accedido desde la
suite de MIDlets que la cre.
Cuando terminamos de utilizar el recordStore, hemos de cerrarlo:
RecordStore.closeRecordStore();
Aadir registros.- Una vez abierto nuestro recordStore podemos comenzar a aadir
registros con el mtodo addRecord().

"Master Recursos Humanos" Doble Titulacin Europea Becas hasta el 75%.


Ultimas Plazas!
www.eude.esEnlaces patrocinados

public int addRecord(byte[] dato,int offset, int numBytes)


El primer parmetro es el dato que queremos almacenar. Es un array de bytes. El offset
es la posicin a partir de la cual (dentro del array) se va a almacenar el dato. Finalmente,
numBytes es el nmero de bytes que se van a almacenar. El mtodo retorna el
identificador que el RMS ha asignado al registro.
El mtodo addRecord puede lanzar la excepcin RecordStoreException, por lo tanto
hemos de capturarla.
try {
int id = recordStore.addRecord (datos, 0, datos.length);
} catch (RecordStoreException e) {}
Leer registros.- El mtodo getRecord() permite acceder al registro que deseemos,
siempre que conozcamos su identificador.
public byte[] getRecord(int Id)
No es necesario que almacenemos y mantengamos una lista con todos los
identificadores de los registros. Un poco ms adelante veremos el mtodo
recordEnumeration que nos permitir conocer el identificador de cada registro. Al igual
que con el mtodo addRecord(), hemos de capturar la excepcin RecordStoreException.
byte[] dato = null;
try {
dato = recordStore.getRecord(id);
} catch (RecordStoreException e) {}
Borrar registros.- El borrado de registros se realiza con el mtodo deleteRecord().

public void deleteRecord(int recordId)


Al igual que con la escritura y lectura de registros hemos de tener en cuenta que puede
provocar la excepcin RecorStoreException.
try {
recordStore.deleteRecord(id);
} catch (RecordStoreException e) {}

Вам также может понравиться