j2me笔记3_BipedRobot的空间_百度空间

数据仓库

数据存储到手机上

微型DBMS
记录管理系统RMS
javax.microedition.rms.*;
RecordStroe 类
接口
RecordFilter
RecordListener
RecordEnumeration

数据仓库
一个手机中有多个数据仓库
一个数据仓库中有多条记录

//创建数据仓库
RecordStore rs=RecordStore.openRecordStore(名字,打开方式);
打开方式
   1 true 如果有这个数据仓库就打开 如果没有就创建
   2 false 如果有这个数据仓库就打开如果没有就抛出异常

对于数据操作
   addRecord 添加
   deleteRecord 删除
   getRecord   获取
   setRecord 更新
java.io.*;

数据仓库操作
closeReocrdStore 关闭
deleteRecordStroe 删除
///////////////////
数据仓库应用
   高分榜
   电子书
   养成类游戏
   游戏进度
   下载

1.CRUD:

RecordStore rs =null;
   ByteArrayOutputStream out = new ByteArrayOutputStream();
   DataOutputStream dos = new DataOutputStream(out);
   try {
    rs = RecordStore.openRecordStore("top", true);
   
    String name = "赵六";
    int score =6000;
   
    try {
     dos.writeUTF(name);
     dos.writeInt(score);
    
    } catch (IOException e) {
     e.printStackTrace();
    }
    byte data[] = out.toByteArray();
    rs.deleteRecord(5);
    Form f = new Form("test recordstore");
    f.append("名字"+rs.getName());
    f.append("下一条id号"+rs.getNextRecordID());
    f.append("记录数"+rs.getNumRecords());
    f.append("仓库大小"+rs.getSize());
    f.append("剩余空间"+rs.getSizeAvailable());
    Display.getDisplay(this).setCurrent(f);

查询:

Form f = new Form("test recordstore");
    f.append("名字                                     分数");
    RecordStore rs =RecordStore.openRecordStore("top", true);
   /* int len=rs.getNumRecords();
    ByteArrayInputStream in=null;
    DataInputStream dis=null;
    for(int i=1;i<len;i++){
      byte buf[] = rs.getRecord(i);
      in= new ByteArrayInputStream(buf);
      dis = new DataInputStream(in);
      String name = dis.readUTF();
      int score = dis.readInt();
      f.append(name+"                           "+score+"\n");
    }
    if(dis!=null){
     dis.close();
    }
    rs.closeRecordStore();*/
   
    //过滤器、排序器、是否更新
    RecordEnumeration enumeration = rs.enumerateRecords(null, null, true);
    ByteArrayInputStream in=null;
    DataInputStream dis=null;
    while(enumeration.hasNextElement()){
     byte buf[] = enumeration.nextRecord();
     in= new ByteArrayInputStream(buf);
     dis = new DataInputStream(in);
     String name = dis.readUTF();
     int score = dis.readInt();
     f.append(name+"                           "+score+"\n");
    }
    if(dis!=null){
     dis.close();
    }
    rs.closeRecordStore();
    Display.getDisplay(this).setCurrent(f);
   

可以自己定义过滤器,只要实现RecordFilter接口

import javax.microedition.rms.*;
import java.io.*;
//自定义过滤器
public class myFilter implements RecordFilter{

public boolean matches(byte[] dat) {
  
    ByteArrayInputStream bis=new ByteArrayInputStream(dat);
DataInputStream dis=new DataInputStream(bis);
try{
dis.readUTF();//获取昵称
int score=dis.readInt();//获取分数
if(score>=2000){return true;}
}catch(Exception e )
{}
return false;
}

}

然后,查询的时候加入过滤器:

myFilter mf=new myFilter();

//获取记录列表                                   过滤器 排序器 是否更新
RecordEnumeration enum=rs.enumerateRecords(mf,null,true);



郑重声明:资讯 【j2me笔记3_BipedRobot的空间_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——