JDBC针对桌面平台或企业用户设计,不适合移动通讯设备。
MIDP为的永久性数据储存提供了面向纪录的数据库(Record Orieted Database),称作“记录管理系统”
Record Management System(RMS)
所有和记录管理系统相关的类放于javax.microedition.rms包中,包括:
一个类:
RecordStore
四个接口:
RecorComparator
RecordEnumeration
RecordFilter
RecorListener
五个异常:
InvalidRecordIDException
RecordStoreException
RecordStoreFullException
RecordStoreNotFoundException
RecordStoreNotOpenException
一般的数据库管理系统存放表格(Table),
记录管理系统中存放记录仓储(Record Store)。
记录仓储全名(最多32个Unicode字符,区分大小写):
MIDlet Suite名称+供货商名称+记录仓储名称
实际设备上,一个MIDlet Suite全名:
MIDlet Suite名称+供货商名称+版本号码
即 MIDlet Suite-Name+MIDlet-Vendor+MIDlet-Version
如果把记录仓储想象成表格,那么这个表格只有两个字段(Column)
一个是Record ID,一个是Data
RecordStore类代表独一无二的记录仓储。我们用RecordStore类提供的openRecordStore()开启记录仓储,
这是一种静态工厂方法的设计模式。而不能通过new来建立一个RecordStore对象。
openRecordStore()构造函数
4参数:
记录仓储名称
布尔值,true表示开启的记录不存在是让系统建立一个新的数据仓储 false不存在时抛出RecordStoreNotFOundExecption异常
认证模式,接受:Record.AUTHMODE_PRIVATE--只有建立此记录仓储的MIDlet Suite才能存取这个记录仓储,
Record.AUTHMODE_ANY--该设备上的任何MIDlet都可以使用读取记录仓储。
布尔值,该设备上的其它MIDlet是否能够写入数据到这个记录仓储。
其它的MIDlet对记录仓储的读取:第三个参数决定读取权,第四个参数决定写入权
如果开启时,内存不敷使用,抛出RecordStoreFullException
3参数:
记录仓储名称
MIDlet Suite供货商名称
认证模式,Record.AUTHMODE_PRIVATE--建立记录仓储的MIDlet和当前调用它的MIDlet必须同属一个MIDlet Suite,
否则抛出SecurityException;Record.AUTHMODE_ANY--任何MIDlet都可以调用此方法。
2参数:
记录仓储名称
布尔值,true表示开启的记录不存在是让系统建立一个新的数据仓储 false不存在时抛出RecordStoreNotFOundExecption异常
setMode()方法来改变认证模式,以及其它MIDlet Suite中MIDlet的写入权
listRecordStores()取得当前MIDlet所在的MIDlet Suite中所有的记录仓储的名称
使用完记录仓储后,须用closeRecordStore()闭记录仓储,以释放系统资源,
所有RecordListener被清空,相关的RecordEnumeration。
如果已关闭,抛出RecordStroeNotOpenException。
deleteRecordStore()删除记录仓储。如果这个记录仓储正被占用,抛出RecordStoreNotFoundException
记录仓储的相关信息:
名字:记录仓储的名字
时间戳记-long类型:最后变动的时间(System.currentTimeMills()取得)
版本号码:初始为0,每更改一次加1
Next Record ID:初始为1,每加入一笔新记录加1
getLastModified()取得时间戳记
getName()取得记录仓储的名称
getNextRecordID()取得Next Record ID的值
getNumRecords()取得记录仓储中记录的笔数
getSize()取得记录仓储中所占据的空间
getSizeAvailable()剩下多上空间
getVersion()取得记录仓储版本号码