Pessoal, estou com uma duvida básica. Pode até parecer ridícula, pois estou começando a estudar o J2ME.
Em relação ao RMS, se eu gravar algum tipo de dados nele, e posteriormente desligar o Pocket, todas as informações serao perdidas?
Se existir um jeito de nao perder as informações, como deve ser feito???
nao meu amigo banguelo…elas nao serao perdidas…se vc quer uma maneira facil e eficiente de trabalahr com RMS procura pelo floggy aquela da mundo Java n 30 é muito show…to usando aqui e to gostando muito…
rodrigodsw2005
Só que quando eu saio do MidletSuite da IBM ou quando desligo o pocket ele simplesmente perde os dados
V essa versao da KVM…tenta usar um classe com o floggy so pra testar…mas isso é a kvm
rodrigodsw2005
Vou verificar essa KVM... tem alguma sugestao de KVM???
Enquanto isso segue o codigo completo:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagehello;/** * * @author rribeiro */importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjavax.microedition.lcdui.List;importjavax.microedition.rms.*;publicclassGravacao{RecordEnumerationrecordEnumeration;Stringtexto;Stringparam0;Stringparam1;RecordStorers;publicGravacao(){}publicvoidadicionaRegistro(Stringparam0){this.texto=param0;// System.out.println(param0);try{rs=RecordStore.openRecordStore("BD",true);ByteArrayOutputStreamBAOS=newByteArrayOutputStream();DataOutputStreamDOS=newDataOutputStream(BAOS);DOS.writeUTF(param0);byte[]bRec=BAOS.toByteArray();rs.addRecord(bRec,0,bRec.length);DOS.close();BAOS.close();}catch(Exceptione){System.out.println(e);}}publicStringretornaRegistro(intid){StringtoReturn="";try{rs=RecordStore.openRecordStore("BD",true);intrecordSize=rs.getRecordSize(id);byte[]data=newbyte[recordSize];ByteArrayInputStreambais=newByteArrayInputStream(data);DataInputStreamdis=newDataInputStream(bais);intnumBytes=rs.getRecord(id,data,0);toReturn=dis.readUTF();bais.reset();bais.close();dis.close();}catch(Exceptione){e.printStackTrace();}returntoReturn;}publicvoidlistaTodos(){Listlista=newList("Lista Original",List.IMPLICIT);ServletConexaosc=newServletConexao();try{rs=RecordStore.openRecordStore("BD",true);for(inti=1;i<=rs.getNumRecords();i++){lista.append(retornaRegistro(i),null);}sc.setParametros(lista);}catch(Exceptionerror){error.printStackTrace();}}}
abelgomes
saca só a diferença do seu codigo de salvar para esse:
/* * Funcionario.java * * Created on 28 de Agosto de 2008, 20:03 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packagerms;importjava.io.*;importjavax.microedition.lcdui.List;importjavax.microedition.rms.RecordStore;importjavax.microedition.rms.RecordStoreException;importnet.sourceforge.floggy.persistence.FloggyException;importnet.sourceforge.floggy.persistence.ObjectSet;importnet.sourceforge.floggy.persistence.Persistable;importnet.sourceforge.floggy.persistence.PersistableManager;/** * * @author Abel Gomes */publicclassFuncionarioRmsimplementsnet.sourceforge.floggy.persistence.Persistable{privateStringnome;privateStringendereco;privateStringtelefone;publicFuncionarioRms(){}publicvoidsalvar(FuncionarioRmsfunc){PersistableManagerpm=PersistableManager.getInstance();try{pm.save(func);}catch(FloggyExceptione){}}publicvoidexcluir(Objectobj){try{PersistableManager.getInstance().delete((Persistable)obj);}catch(FloggyExceptionex){ex.printStackTrace();}}publicObjectSetbuscar(Stringnome){FuncionarioRmsfunc=newFuncionarioRms();ObjectSetos=null;try{os=PersistableManager.getInstance().find(FuncionarioRms.class,newFiltroNomeFuncionario(nome),null);}catch(FloggyExceptione){}returnos;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetEndereco(){returnendereco;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}}
classe filtro…para fazer pesquisa com o paramentro escolhido…no meu caso escolhi o nome
/* * FiltroNomeFuncionario.java * * Created on 30 de Agosto de 2008, 09:41 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packagerms;importnet.sourceforge.floggy.persistence.Persistable;/** * * @author Abel Gomes */publicclassFiltroNomeFuncionarioimplementsnet.sourceforge.floggy.persistence.Filter{privateStringnome;/** Creates a new instance of FiltroNomeFuncionario */publicFiltroNomeFuncionario(Stringnome){this.nome=nome;}publicbooleanmatches(Persistablepersistable){FuncionarioRmsfunc=(FuncionarioRms)persistable;returnfunc.getNome().startsWith(nome);}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}}
com base nesse filtro vc pode fazer pesquisa por endereco…etc
da uma olhada no floggy e enxuga esse codigo…no meu celular e nos palms de teste aqui da empresa ele roda show de bola…
tem que V uma versao da kvm q seja compativekl com seu aparelho…entra no site da ibm e veja se eles disponibilizam uma ou se tem alguma atuaçlização