JavaMe连载(7)-数据永久存储 (二)

2014-11-24 07:56:19 · 作者: · 浏览: 1
eRecordStore();
info=null;
} catch (RecordStoreException ex) {}
}
}
//增加记录
public int db_addRecord(UserDataItem item) {

try {
this.openDataBase();
byte[] data=item.getBytes();
int id=info.getNextRecordID();
info.addRecord(data,0,data.length);
this.closeDataBase();
return id;
} catch (RecordStoreException ex) { }

return -1;
}
//更新记录
public void db_updateRecord(UserDataItem item){

try {
this.openDataBase();
byte[] data=item.getBytes();
info.setRecord(item.getId(),data,0,data.length);
this.closeDataBase();
} catch (RecordStoreException ex) { }
}
//访问一条记录
public UserDataItem db_getRecord(int id){
UserDataItem item=null;

try {
this.openDataBase();
item = new UserDataItem(id,info.getRecord(id));
this.closeDataBase();
} catch (RecordStoreException ex) { }

return item;
}
//删除一条记录
public void db_deleteRecord(int id){
try {
this.openDataBase();
info.deleteRecord(id);
this.closeDataBase();
} catch (RecordStoreException ex) {}
}

//删除所有记录
public void db_deleteAllRecord(){
try {
RecordStore.deleteRecordStore(RECORDSTORE_NAME);
} catch (RecordStoreException ex) {}
}

//访问所有记录
public Vector db_getRecords(){
Vector items=new Vector(10,3);
this.openDataBase();//打开RecordStore
RecordEnumeration enum1=null;
int ind=0;
try{
UserDataItem item=null;
enum1=info.enumerateRecords(null,new InnerComparator(),false);

while(enum1.hasPreviousElement()){
ind=enum1.previousRecordId();
item=new UserDataItem(ind,info.getRecord(ind));
items.addElement(item);
}

}catch(Exception ex){ex.printStackTrace();}
finally{
try{
enum1.destroy();
}catch(Exception e){}

this.closeDataBase();//关闭RecordStore
}//end finally

return items;
}
//一个简单的比较器
private class InnerComparator implements RecordComparator{
public int compare(byte[] rec1, byte[] rec2){
if(rec1.length>rec2.length)
return FOLLOWS;
else if(rec1.length return PRECEDES;
else
return EQUIVALENT;
}

}
}
package com.token.util;

import java.util.Vector;

import javax.microedition.rms.RecordComparator;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;

import com.token.model.*;

public class UserDataRecord {
private static final String RECORDSTORE_N