快速业务通道

J2ME记录管理存储 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
public void setRecord(int recordId, byte[] newData, int offset, int numBytes) 在 recordId 所代表记录的位置设置新信息,新信息 是以 offset 作为它的起始索引,并以 numBytes 作为它的长度的字节流( newData )。

清单 5. 更新一条记录

String newappt = "update record"; Byte data = newappt.getBytes(); Rs.setRecord(1, data, 0, data.length());

删除记录

MIDlet 调用 deleteRecord() 方法来从记录存储中删除记录。

public void deleteRecord(int recordId) 删除由 recordId 代表的记录。这个记录的 recordId 接下来不能重用。

清单 6. 删除一条记录

Rs.deleteRecord(1);

数据解释

J2ME API 提供某种接口来解释存储在记录存储中的数据。这个过程包括比较记录来确定 它们的相对排序。它还包括根据给定条件的内容过滤。

比较记录

MIDlet 实现 RecordComparator 接口,并定义 compare (byte[] rec1, byte[] rec2) 方法来比较两个候选记录。这个方法的返回值必须指示这两条记录的顺序。

清单 7. 比较记录并确定相对排序

Int compare (byte[] b1, byte[] b2) { String s1 = new String(b1); String s2 = new String(b2); If (s1.compareTo(s2) > 0)    Return RecordComparator.FOLLOWS; Else if (s1.compareTo(s2) == 0)    Return RecordComparator.EQUIVALENT; Else    Return RecordComparator.PRECEDES; }

J2ME记录管理存储(3)

时间:2011-04-11 IBM Soma Ghosh

枚举记录

RecordEnumeration 接口负责枚举记录存储中的记录。它逻辑上维护记录存储中一连串的 记录的 recordId 。枚举器将以记录比较器确定的顺序迭代所有记录(或者如果提供了一个 可选的记录过滤器,那么只是一个子集)。如果既没有指定过滤器又没有指定比较器,枚举 将以未定义的顺序遍历记录存储中的所有记录。

清单 8. 枚举记录

RecordEnumeration re = rs.enumerateRecords(null, null, false); If (re.hasNextElement()) Byte nextRec[] = re.nextRecord();

过滤记录

MIDlet 实现 RecordFilter 接口,定义检查记录是否满足应用程序定义的标准的过滤器 。这个应用程序实现 RecordFilter 的 match() 方法来选择 RecordEnumeration 返回的记 录。

清单 9. 过滤记录

Public boolean matches(byte[] candidate) {    String s1 = new String(candidate);    If (s1.equals("XX"))       Returns true;    Else       Returns false; }

开发电话约会簿

在这部分,我们将通过构建一个电话约会簿来说明 J2ME RMS 的功能。这个应用程序将允 许用户设置某个日期和时间的约会,取消约会或查看已经设置好的约会列表。一个快捷屏幕 视图如图 2 所示。

图 2. 工作中的电话约会簿

J2ME记录管理存储 - 编程入门网

构成这个应用程序的各种屏幕以及屏幕元素的用户界面元素的完整列表在与 J2ME Wireless Toolkit 一起提供的 MID 框架 API 文档中可以得到;要获取关于这些元素的更多 详细信息,请查阅我早些时候给 developerWorks写的一篇文章(请参阅下面的 参考资料部 分以获取这两个链接)。

记录存储可以以字节流形式存储记录。在我们的应用程序中,用户输入的日期和时间被连 接成一个字符串,转换成字节,然后被存储。

J2ME记录管理存储(4)

时间:2011-04-11 IBM Soma Ghosh

清单 10. 将一个新的约会添加到数据库中

Public boolean matches(byte[] candidate) String appt = apptName + " " + apptTime; byte bytes[] = appt.getBytes(); rs.addRecord(bytes,0,bytes.length);

同样,这个应用程序以字节流形式检索记录,然后将它转换成一个字符串。这个字符串以 ####AAAA 格式,其中 # 表示代表时间信息的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号