Cada dispositivo móvel mantém uma área da memória para o armazenamento de dados. Neste artigo vamos aprender como é manipulado esta área através da API RMS (Record Management System), que é a solução do J2ME para a criação e manipulação de registros.
O armazenamento de dados (banco de dados) é chamado de Record Store. Ele é identificado por um nome, que é case sensitive e é criado por um MIDlet. Então quando um MIDlet é removido de um dispositivos todos os Record Stores relacionados a ele serão removidos também.
A API RMS não suporta tipos característicos de outros banco de dados, como tabelas, colunas ou linhas, nele cada registro é um array de bytes. Por causa disso a aplicação deve converter os dados para array de bytes para poderem ser armazenados. Para ler os dados o processo inverso deve ser feito.
Porém podemos imaginar o Record Store como um conjunto de linhas, onde cada linha é um registro ou Record e estes são identificados por uma chave primária, chamada Record ID, que é um inteiro. Logo, cada registro é formado por um inteiro e um array de bytes.
Métodos fornecidos pelo Record Store:
openrecordstore(String nome, boolean criarCasoNaoExista): abre ou cria um Record Store. É por meio dessa função que se obtêm o Record Store, já que essa classe não tem construtor.
A função tenta abrir o Record Store de nome informado no primeiro parâmetro. Caso este não exista ele verifica o segundo parâmetro para ver se deseja criá-lo ou não. Se for true cria o Record Store, se for false só permite abri-lo e não criá-lo.
closerecordstore(): fecha um Record Store que está aberto.
deleterecordstore(String nomeDoRecordStore): apaga o Record Store com o nome informado. Para que um Record Store poça ser apagado é necessário este estar fechado.
Os métodos para a criação e manipulação são:
int addrecord(byte [] dados, int offset, int numbytes): adiciona um registro.
byte [] dados: são os dados que deseja armazenar.
int offset: é o primeiro índice do array de bytes que deve ser lido.
int numbytes: tamanho do array de bytes do dado que se quer armazenar.
setrecord(int id, byte [] novosdados, int offset, int numbytes): faz a atualização de um registro.
int id: identificador do registro que se deseja atualizar.
Os outros 3 parâmetros são os mesmos do método acima (addrecord).
delederecord(int id): apaga o registro informado pelo parâmetro id.
byte [] getrecord(int id): recupera um determinado registro (Record) do Record Store.
O método devolve o dado, armazenado no array de bytes, referente ao id passado por parâmetro.
int getnumrecords(): obtêm a quantidade de registros que tem em um Record Store.
O próximo post apresentará o código de uma agenda, usando armazenamento persistente. Será explicado com detalhes a utilização dos métodos da API RMS como abrir um Record Store, adicionar um Record, listar, entre outros.
O armazenamento de dados (banco de dados) é chamado de Record Store. Ele é identificado por um nome, que é case sensitive e é criado por um MIDlet. Então quando um MIDlet é removido de um dispositivos todos os Record Stores relacionados a ele serão removidos também.
A API RMS não suporta tipos característicos de outros banco de dados, como tabelas, colunas ou linhas, nele cada registro é um array de bytes. Por causa disso a aplicação deve converter os dados para array de bytes para poderem ser armazenados. Para ler os dados o processo inverso deve ser feito.
Porém podemos imaginar o Record Store como um conjunto de linhas, onde cada linha é um registro ou Record e estes são identificados por uma chave primária, chamada Record ID, que é um inteiro. Logo, cada registro é formado por um inteiro e um array de bytes.
Métodos fornecidos pelo Record Store:
openrecordstore(String nome, boolean criarCasoNaoExista): abre ou cria um Record Store. É por meio dessa função que se obtêm o Record Store, já que essa classe não tem construtor.
A função tenta abrir o Record Store de nome informado no primeiro parâmetro. Caso este não exista ele verifica o segundo parâmetro para ver se deseja criá-lo ou não. Se for true cria o Record Store, se for false só permite abri-lo e não criá-lo.
closerecordstore(): fecha um Record Store que está aberto.
deleterecordstore(String nomeDoRecordStore): apaga o Record Store com o nome informado. Para que um Record Store poça ser apagado é necessário este estar fechado.
Os métodos para a criação e manipulação são:
int addrecord(byte [] dados, int offset, int numbytes): adiciona um registro.
byte [] dados: são os dados que deseja armazenar.
int offset: é o primeiro índice do array de bytes que deve ser lido.
int numbytes: tamanho do array de bytes do dado que se quer armazenar.
setrecord(int id, byte [] novosdados, int offset, int numbytes): faz a atualização de um registro.
int id: identificador do registro que se deseja atualizar.
Os outros 3 parâmetros são os mesmos do método acima (addrecord).
delederecord(int id): apaga o registro informado pelo parâmetro id.
byte [] getrecord(int id): recupera um determinado registro (Record) do Record Store.
O método devolve o dado, armazenado no array de bytes, referente ao id passado por parâmetro.
int getnumrecords(): obtêm a quantidade de registros que tem em um Record Store.
O próximo post apresentará o código de uma agenda, usando armazenamento persistente. Será explicado com detalhes a utilização dos métodos da API RMS como abrir um Record Store, adicionar um Record, listar, entre outros.
3 comentários:
Bacana! Muito bom! Fazer com base em algo pronto sem explicações de como é feito não adianta mto, do modo que fez é o jeito certo de aprender. Vlw!
Legal,gostei muito bem explicado.!!!
postagem muito interessante mas falta o nome do autor :)
Postar um comentário