以前做过一个黑莓项目,记录一下,别忘记了。。
RecordStore可以看做是一个数据库,数据库里可以有多个表,但是每个表只能保存一条记录。
先写一个类,用来保存数据库里查询出来的数据:
- package rms;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- public class RMSData {
- private String str1="";
- private String str2="";
- public RMSData() {
- }
- public RMSData(String _str1, String _str2) {
- this.str1 = _str1;
- this.str2 = _str2;
- }
- public RMSData(byte[] rec) {
- initRMSData(rec);
- }
- public byte[] toBytes() {
- byte[] data = null;
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- DataOutputStream dos = new DataOutputStream(baos);
- dos.writeUTF(str1);
- dos.writeUTF(str2);
- data = baos.toByteArray();
- baos.close();
- dos.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return data;
- }
- public void initRMSData(byte[] rec) {
- ByteArrayInputStream bais = new ByteArrayInputStream(rec);
- DataInputStream dis = new DataInputStream(bais);
- try {
- //rec字节数组中存放的两段信息,str1是表名,str2是此条记录的信息
- str1 = dis.readUTF();
- str2 = dis.readUTF();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public String getStr1() {
- return str1;
- }
- public String getStr2() {
- return str2;
- }
- }
1.查询某库,某表下的全部记录:
- public static RMSData getRecord(String name, String content){
- //name看做是数据库名,content看做是表名
- RMSData result = new RMSData();
- RecordEnumeration re = null;
- try {
- RecordStore rs = RecordStore.openRecordStore(name, false);
- re = rs.enumerateRecords(null, null, false);
- int id=0;
- //将所有的表中所有的记录全部取出来,然后循环每条记录来判断此条记录是不是content表中的,如果是则重新将此条
- //记录取出来。
- for (int i = 0; i < BBRecordSet.getNumOfRecords(name); i++) {
- int id2 = re.nextRecordId();
- RMSData app = new RMSData(rs.getRecord(id2));
- if (app.getStr1().trim().equals(content.trim())) {
- id=id2;
- break;
- }
- }
- result = new RMSData(rs.getRecord(id));
- rs.closeRecordStore();
- } catch (Exception e) {
- }
- return result;
- }
增加一条记录:
- public static void putRMS(String str1, String str2) throws RMSException {
- try {
- RMSData app = new RMSData("", "");
- //先查询出RMSStoreName.App_storename此数据库中str1表中的记录
- app = BBRecordSet.getRecord(RMSStoreName.App_storename, str1);
- if (app.getStr1().equals(str1)) { //如果记录已存在
- int id = BBRecordSet.getIndex(RMSStoreName.App_storename, str1);//查询出str1表中记录的id
- BBRecordSet.setRecord(RMSStoreName.App_storename, id, str1,
- str2);//保存记录,将原纪录替换掉
- } else { //如果记录不存在
- BBRecordSet.addRecord(RMSStoreName.App_storename, str1, str2);
- }
- } catch (Exception e) {
- throw new RMSException();
- }
- }
基本就这些