数据仓库
数据存储到手机上
微型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);