Anda di halaman 1dari 3

Persistnsia de Dados A J2ME disponibiliza um sistema para gerenciamento, armazenamento e recuperao de dados padro, o que a torna interessante, j que

fornece a independncia de plataforma para a aplicao. Esse sistema denominado RMS (Record Management System Sistema de Gerenciamento de Registros), disponibilizado dentro do perfil MIDP. Os dados persistidos em um MID, com a utilizao do RMS, So Armazenado sem memria no voltil, mesmo que o dispositivo seja desligado. O RMS um banco de dados orientado para registros, conhecido como arquivo puro. Cada registro uma linha que tem dois elementos: um identificado um vetor de bytes, o qual possibilita o armazenamento dos dados. Um conjunto de registros consiste em um armazm de registro, anlogo a um banco de dados individual. Em uma Midlet pode haver quantos armazns forem necessrios. Cada armazm identificado com um nome que nico. Ou seja, caso tenha sido definido um armazm denominado BD , este passa a ser o identificador nico do armazm de registros. Uma MIDlet pode acessar armazns de outras MIDlets em um mesmo dispositivo. Os armazns em MID esto associados a aplicaes distintas. Os nomes definidos para os armazns podem repetir sem que isso influencie no funcionamento das MIDlets, J que cada uma delas faz referncia ao armazm que compe seu prprio pacote. Segundo Muchow (2004), existem dois valores mantidos por um armazm ou banco de dados de uma MID, que so uteis para controlar a utilizao do banco e a atualizao de qualquer operao desempenhada sobre o armazm. Vejamos a seguir, quais so esses dois valores Numero da verso: um nmero inteiro que armazena a verso de um Armazm. Indicao de data e hora: um inteiro longo que indica a data e a hora da ultima alterao realizada no armazm. Caso um conjunto de MIDlets seja removido de um dispositivo mvel, ou seja, uma arquivo jar, todos os armazns vinculados aquele conjunto sero extintos tambm. Para tanto, a MIDP fornece uma classe que consiste no corao da RMS, a Recor Store. Com a utilizao da classe RecordStore, podem ser realizadas operaes de insero, atualizao, excluso e pesquisa nos armazns de dados de uma MIDlet. Ela diferenciada j que no disponibilizam uma classe construtora como as demais, mas somente mtodos para a manipulao do armazm. Vejamos principais mtodos disponibilizado por essa classe: Static RecordStore openRecordStore(string nomeDoArmazem, boolean ifCriado) Abre um armazm de registro. Caso ele no exista, cria-o. Void closeRecordStore() Fecha o armazm de registros.

Static void deleteRecordStore(string nomeArmazem). Exclui o armazem de registros Static String[] list RecordStores() retorna todos os armazns de um conjunto de MIDlets. Int addRecord(bytes[] dados, int inicio, int numeroBytes) Adiciona um registro de dados. Byte[] getRecord(int idRegistro) Obtm os dados de um regsitro. Void setRecord(int idRegistro, bytes[] dados, int inicio, int numeroBytes) Atribui dados a uma posio no armazm. void addRecordListener(RecordListener listener) Adiciona um listner para detectar alteraes em um registro. void removeRecordListener(RecordListene r listener) Remove um listener. Para o armazenamento de dados, podem ser utilizados dois mtodos: o addRecord() e o setRecord(). Ambos trabalham com a insero de um vetor de bytes. ByteArrayInputStream, DataInputStream, ByteArrayOutputStream e DataOutputStream. Elas esto definidas no pacote java.io que parte da CLDC (Configurao de Dispositivo Conectado Limitado). Um dos objetivos da CLDC definir um conjunto mnimo de classes Java que atendam a uma especificao de uma JVM, de tal forma que suporte uma ampla variedade de dispositivos com memria, recursos de vdeo, conectividade e processamento limitado. Os pacotes de classes da CLDC esto presentes tambm no J2SE, tornando, portanto, todo o conhecimento adquirido na utilizao delas nesse ambiente passvel de ser reaproveitado no J2ME. A ByteArrayInputStream contm um buffer interno que armazena os bytes lidos do fluxo de entrada. Usando um contador, ele mantm o rastro do Avanar byte a ser lido. A classe ByteArrayOutputStream estende a classe abstrata OutputStream (superclasse de todas as classes que efetuam fluxo de sada de bytes) e implementa um fluxo de sada, em que os dados so escritos em um buffer representado por um array de bytes. Esse buffer cresce automaticamente medida que os dados so escritos no fluxo. O DataOutput interface fornece para converter dados de qualquer um dos tipos primitivos de Java para uma srie de bytes e escrever esses bytes para um stream binrio. Existe tambm uma facilidade para a converso de uma String em Java modificada formato UTF-8 e escrever a srie resultante da bytes. Para todos os mtodos dessa interface que escrever bytes, geralmente verdade que, se um byte no pode ser escrito por qualquer motivo, um IOException gerada.

O DataInput interface disponibiliza para ler bytes de um fluxo binrio e reconstruindo a partir delas de dados em qualquer um dos tipos primitivos de Java. H tambm uma instalao para a reconstruo de uma String de dados em Java modificada UTF-8 formato. geralmente verdade de todas as rotinas de leitura nesta interface que se o fim do arquivo for atingido antes do nmero desejado de bytes tenham sido lidos, um EOFException (que uma espcie de IOException ) acionada. Se algum byte no podem ser lidos por qualquer outro motivo que o fim do arquivo, uma IOException que no EOFException acionada. Em particular, uma IOException pode ser acionada se o fluxo de entrada foi fechada.

Anda mungkin juga menyukai