J2ME学习笔记(十)

类别:软件工程 点击:0 评论:0 推荐:

   何所谓RMS? Record Management System 记录管理系统。其实也就是MIDP所定义的一个数据库管理系统。可以将对象或者对象的状态永久的保存下来。同所有的数据库同样,RMS里面也可以定义很多个不同的table,在RMS里面这些table叫做Record Stroe。与RMS相关的所有类都存储在javax.microedition.rms包里面。主要包括有RecordStore、RecordEnumeration类以及RecordComparator、RecordFilter、RecordListener三个接口。
   在每一个MIDlet Suite之中,每个资料库都有它唯一的一个名字,而且其大写不能超过32个Unicode字符,区分大小写。方法RecordStore.openRecordStore(rms名,true/false)用来打开一个记录库。如果传入参数为true那么当程序找不到此record的时候会创建一个新的record;如果传入false,当找不到此record的时候系统会抛出RecordStroeNotFoundException。
   开启一个记录库以后,RecordStore类中定义了几个方法来取得相关信息:
     1、getLastModified()  取得上次修改时间
     2、getName()          取得记录库名字
     3、getNextRecordID()  取得下一条记录ID
     4、getNumRecords()    取得记录库中记录个数
     5、getSize()          取得目前记录库所占用的系统空间
     6、getSizeAvailable() 取得目前系统中还有多少空间可用
     7、getVersion()       取得记录库第版本号。每次更改记录库资料版本号都会更新。
     8、listRecordStores() 取得当前MIDlet Suite之中所有记录库第名字
     9、closeRecordStore() 关闭记录库(实际是告诉JAM目前记录库的thread不再使用该记录库)
     9、deleteRecordStore()删除记录库
   同时,RecordStore提供了5个存取记录的方法:
     1、int addRecord(byte[] data,int offset,int numBytes)  将bytes数组存放到资料库,同时返        回其对应第RecordID。对与记录库而言,RecordID相当于主键。
     2、int getRecord(int recordid,byte[] data,int offset)  取出对应RecordID的记录。
     3、byte[] getRecord(int recordid)  取出对应记录
     4、void setRecord(int recordid,byte[] newdata,int offset,int num bytes)  更新相应记录
     5、void deleteRecord(int recordid)  删除对应记录

    记录管理提供了一个RecordListener接口,它监听记录库里面记录的新建,更改,删除。同时,它支持multicase,也就是说它允许在同一时间可以有多个人同时进行监听。
   

本文地址:http://com.8s8s.com/it/it32891.htm