3.201 cursos gratis
6.233.243 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Programación de juegos para móviles con J2ME > Recorriendo registros

Programación de juegos para móviles con J2ME

Autor: Alberto García Serrano
Curso:  4,52/5 4,52/5 (83 opiniones) |11910 alumnos|Fecha publicación: 07/09/2004
Capítulos del curso

Capítulo 26:

 Recorriendo registros

Vamos a valernos del objeto RecordEnumeration para recorrer todos los registros almacenados en la base de datos. Para crear una enumeración utilizamos el método enumerateRecords().

public RecordEnumeration enumerateRecords(RecordFilter filtro,
    RecordComparator, comparador,boolean Actualizar)

Los dos primeros parámetros sirven para personalizar el recorrido de los registros. No entraremos en detalle, pero, gracias al primero podremos filtrar la búsqueda, y con el segundo podemos recorrer los registros de forma ordenada. El parámetro Actualizar indica si la enumeración debe actualizarse cuando realicemos alguna operación de inserción o borrado de registros. Si vas a hacer un recorrido rápido por los registros es mejor ponerlo a false para evitar la sobrecarga.

RecordEnumeration registro = null;

try {
    registro = recordStore.enumerateRecords(null, null, false);
    while (registro.hasNextElement())
        System.out.println (registro.nextRecordId());
} catch (Exception e) {}
Hay dos métodos interesantes del RecordEnumeration: hasNextElement() que devolverá el valor true si hay un siguiente elemento disponible para ser leído. Cada vez que leemos un elemento se adelanta el puntero al siguiente. El método nextRecordId() devuelve el identificador del siguiente registro.

El siguiente código muestra un ejemplo completo de uso de RMS.


import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;

public class RMS extends MIDlet {

    // nombre de la BD
    static final String BD = "datos";

    String dato;
    int id, i;
    char b;

    public RMS() {
        RecordStore rs = null;

        // Borramos la BD si tenía algo
        try {
            RecordStore.deleteRecordStore(BD);
        } catch( Exception e ){}

        try {
            // Abrimos el recordStore
            rs = RecordStore.openRecordStore(BD, true);

            guardaRegistro(rs,"Datos del registro 1");
            guardaRegistro(rs,"Datos del registro 2");
            guardaRegistro(rs,"Datos del registro 3");

            // Leemos los registros
            RecordEnumeration registros = rs.enumerateRecords(null, null, false);
            // Recorremos todos los elementos
            while (registros.hasNextElement()) {

                // Obtenemos el ID del siguiente registro
                verRegistro(rs, registros.nextRecordId());
            }
            rs.closeRecordStore();
        } catch( RecordStoreException e ){
            System.out.println( e );
        }
        notifyDestroyed();
    }

    public void verRegistro(RecordStore rs, int id) {
        try {
            ByteArrayInputStream bais = new ByteArrayInputStream(rs.getRecord(id));
            DataInputStream is = new DataInputStream(bais);
            // leemos el registro
            try {
                dato = is.readUTF();
                System.out.println("-> "+dato);
            } catch (EOFException eofe) {
            } catch (IOException ioe) {}
        } catch (RecordStoreException e) {}
    }

    public void guardaRegistro(RecordStore rs, String dato) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream os = new DataOutputStream(baos);
        try {
            // guadar el dato
            os.writeUTF(dato);
        } catch (IOException ioe) {}

        // extraer el array de butes
        byte[] b = baos.toByteArray();

        // lo añadimos al recordStore
        try {
            rs.addRecord(b, 0, b.length);
        } catch (RecordStoreException rse) {}
    }

    public void destroyApp( boolean unconditional ) {}

    public void startApp() {}

    public void pauseApp() {}
}

Capítulo siguiente - Comunicaciones
Capítulo anterior - Almacenamiento. RMS
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 83 opiniones. Opina sobre este curso.

Descarga el PDF gratis

Cursos similares a Programación de juegos para móviles con J2ME


Cursos Valoración Alumnos Vídeo
Introducción a Oracle
En el curso se introducen los conceptos básicos para saber que es un Gestor de Bases de Datos Relacional, y la utilidad de Oracle para este cometido.... [01/02/06]
 4,79/5 16.011  
Webs dinámicas con PHP
El lenguaje PHP es un lenguaje de programación de estilo clásico, nada que ver con el HTML, XML o WML. Se parece mucho más al Java o Javascript pero, a diferencia de esto... [10/09/04]
 4,27/5 11.439  
Técnicas para el desarrollo de computación móvil (orientado a PDA)
Uno de los nuevos paradigmas en el desarrollo de proyectos informáticos es la computación móvil (computación Ubicua). Aquí se verá todo lo que involucra la creación de un... [31/03/06]
 4,33/5 1.307  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail