快速业务通道

JAVAME的RMS通用持久化框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

JAVAME的RMS通用持久化框架

时间:2011-06-16 BlogJava 千里冰封

在写JAVAME程序的时候,我们经常需要保存一些数据到手机里面,也经常希 望能把对象也保存到手机里面,但是JAVAME里面没有反射机制,也没有 java.io.Serializable接口,所以没有序列化的机制,要保存对象的话,就得自 己动手了。

在JAVAME中,程序的数据保存的地方,无外乎两种,一种是把数据保存在RMS 里面,这是所有的JAVAME的手机都支持的,还有一种就是把数据保存在手机的文 件系统里面,这个不是所有手机都能支持的,只有支持JSR075的手机,才支持把 数据保存在文件系统里面,并且如果你的程序没有经过签名的话,你每次保存或 者读取,手机都会弹出恼人的提示,是否允许程序访问文件系统。所在我一般都 是把数据存在RMS里面,因为读写RMS是安全的,并且也是不需要手机提示的。因 为我们的RMS数据是存在一个特殊的地方。但是JAVAME的RMS功能非常底层,为了 保存一些数据,我们必须和byte[]打交道,所以我就产生了,在此之前封装一层 自己的程序的想法,这样封装好以后,使用起来就非常方便了。只要实现了相关 接口,就可以享受到比较易用的方法了。

此框架总共包括了四个类,分别如下:

Serializable类,它是一个接口,类似于JAVASE里面的Serializable接口, 唯一不同的就是,JAVASE里面的接口是一个空接口,只做标记用的,而这里的这 个接口是有方法需要实现的。

Lazy类,它也是一个接口,它定义了一些方法,如果你的对象比较大,需要 惰性加载的时候,可以实现此接口,并且此接口是Serializable接口的子类,也 就是说实现了Lazy接口,你就相当于实现了Serializable接口。

RMSUtil类,此类是一个工具类,用于统一进行RMS的相关操作,也是此框架 的核心类。

RecordFetcher类,也是一个接口,它继承了RecordComparator, RecordFilter接口,在取数据的时候,需要用到它。

好了,下面我们就开始看代码吧。

 1 /*   2  * To change this template, choose Tools | Templates   3  * and open the template in the editor.   4  */   5 package com.hadeslee.mobile.rms;   6   7 import java.io.IOException;   8   9 /** 10  * 一个可自己串行化的类所要实现的接口 11  * @author hadeslee 12  */ 13 public interface Serializable { 14 15     /** 16      * 把自己编码成字节数组的格式 17      * @return 字节数组 18      */ 19     public byte[] serialize() throws IOException; 20 21     /** 22      * 把一个对象用此字节数组进行重装 23      * @param data 字节数组 24      */ 25     public void unSerialize(byte[] data) throws IOException; 26 27     /** 28      * 设置此对象序列化后对应的存储对象的ID 29      * @param id ID 30      */ 31     public void setId(int id); 32 33     /** 34      * 得到此对象序列化后的ID 35      * 此方法唯有在反序列化后的对象上调用才有效 36      * 如果一个对象是没有序列化的,那么它的ID是-1; 37      * @return ID 38      */ 39     public int getId(); 40 } 41   1 /*   2  * To change this template, choose Tools | Templates   3  * and open the template in the editor.   4  */   5 package com.hadeslee.mobile.rms;   6   7 import java.io.IOException;   8   9 /** 10  * 可以延迟加载的对象必须要实现的接口 11  * @author binfeng.li 12  */ 13 public interface Lazy extends Serializable { 14 15     /** 16  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号