`

检索所有数据RMS

    博客分类:
  • J2ME
阅读更多
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordFilter;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreNotFoundException;

public class RetrieveAllMIDlet extends MIDlet implements CommandListener {
  private Command exitCommand = new Command("Exit", Command.EXIT, 1);

  private Display display;

  private String[] names = { "A", "B", "C", "D" };

  private int[] chineseScore = { 74, 98, 89, 76 };

  private int[] englishScore = { 67, 89, 89, 78 };

  private int[] mathScore = { 80, 76, 80, 78 };

  public RetrieveAllMIDlet() {
    display = Display.getDisplay(this);
  }

  public void startApp() {
    TextBox aTextBox = new TextBox("Main", null, 256, TextField.ANY);
    RecordStore rs = null;
    boolean existingOrNot = false;
    existingOrNot = existing("aRS3");
    if (existingOrNot) {
      try {
        rs = RecordStore.openRecordStore("aRS3", false);
      } catch (Exception e) {
      }
    } else {
      try {
        rs = RecordStore.openRecordStore("aRS3", true);
      } catch (Exception e) {
      }
    }

    Student aStudent = null;

    try {
      for (int i = 0; i < names.length; i++) {
        aStudent = new Student();
        aStudent.write(names[i], chineseScore[i], englishScore[i], mathScore[i]);
        byte[] data = aStudent.changeToByteArray();
        int recordID = aStudent.getRecordID();
        if (recordID != -1) {
          rs.setRecord(recordID, data, 0, data.length);
        } else {
          recordID = rs.addRecord(data, 0, data.length);
          aStudent.setRecordID(recordID);
        }
        aStudent = null;
      }
      aTextBox.setString("Adding done");
    } catch (Exception e) {
      aTextBox.setString("Add Falied");
    }

    String result = "";
    aStudent = new Student();

    try {
      byte[] data;
      int number = 0;
      RecordFilter rf = new averageFilter();
      RecordEnumeration re = rs.enumerateRecords(rf, null, false);
      while (re.hasNextElement()) {
        int recordID = re.nextRecordId();
        data = rs.getRecord(recordID);
        aStudent.changeFromByteArray(data);
        result += recordID + "\n" + "Name:" + aStudent.getName() + "\n" + ":"
            + aStudent.getChineseScore() + "\n" + ":" + aStudent.getEnglishScore() + "\n" + ":"
            + aStudent.getMathScore() + "\n";
        number++;
      }
      result += number + "\n";
      aTextBox.setString(result);
    } catch (Exception e) {
      aTextBox.setString("Failed!");
      try {
        rs.closeRecordStore();
        RecordStore.deleteRecordStore("aRS3");
      } catch (Exception x) {
      }
    } finally {
      try {
        if (rs != null)
          rs.closeRecordStore();
        rs.deleteRecordStore("aRS3");
      } catch (Exception e) {
      }
    }
    aTextBox.setString(result);
    aTextBox.addCommand(exitCommand);
    aTextBox.setCommandListener(this);
    display.setCurrent(aTextBox);
  }

  public void pauseApp() {
  }

  public void destroyApp(boolean unconditional) {
  }

  public boolean existing(String recordStoreName) {
    boolean existingOrNot = false;
    RecordStore rs = null;
    if (recordStoreName.length() > 32)
      return false;
    try {
      rs = RecordStore.openRecordStore(recordStoreName, false);
    } catch (RecordStoreNotFoundException e) {
      existingOrNot = false;
    } catch (Exception e) {
    } finally {
      try {
        rs.closeRecordStore();
      } catch (Exception e) {
      }
    }
    return existingOrNot;
  }

  public void commandAction(Command c, Displayable s) {
    destroyApp(false);
    notifyDestroyed();
  }
}

class Student {
  private int ID = -1;

  private String name;

  private int chineseScore;

  private int englishScore;

  private int mathScore;

  public void write(String name, int chineseScore, int englishScore, int mathScore) {
    this.name = name;
    this.chineseScore = chineseScore;
    this.englishScore = englishScore;
    this.mathScore = mathScore;
  }

  public void setRecordID(int ID) {
    this.ID = ID;
  }

  public int getRecordID() {
    return ID;
  }

  public byte[] changeToByteArray() {
    byte[] data = null;

    try {
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      DataOutputStream dos = new DataOutputStream(baos);
      dos.writeUTF(name);
      dos.writeInt(chineseScore);
      dos.writeInt(englishScore);
      dos.writeInt(mathScore);
      data = baos.toByteArray();

      baos.close();
      dos.close();
    } catch (Exception e) {
    }
    return data;
  }

  public void changeFromByteArray(byte[] data) {
    try {
      ByteArrayInputStream bais = new ByteArrayInputStream(data);
      DataInputStream dis = new DataInputStream(bais);

      name = dis.readUTF();
      chineseScore = dis.readInt();
      englishScore = dis.readInt();
      mathScore = dis.readInt();

      bais.close();
      dis.close();
    } catch (Exception e) {
    }
  }

  public String getName() {
    return name;
  }

  public int getChineseScore() {
    return chineseScore;
  }

  public int getEnglishScore() {
    return englishScore;
  }

  public int getMathScore() {
    return mathScore;
  }
}

class averageFilter implements RecordFilter {
  public boolean matches(byte[] candidate) {
    DataInputStream student = new DataInputStream(new ByteArrayInputStream(candidate));
    int average = 0;
    try {
      average = (student.readInt() + student.readInt() + student.readInt()) / 3;
    } catch (Exception e) {
    }
    if (average >= 80)
      return true;
    else
      return false;

  }
}

_displayNameOrEmail_ - _time_ - 删除

_text_

 
分享到:
评论

相关推荐

    RMS.zip_rms

    RMS是J2ME MIDP(Mobile Information Device Profile)的一部分,它提供了一种轻量级的数据库系统,用于在没有标准SQL数据库支持的设备上存储和检索数据。RMS可以用来保存用户设置、游戏进度、联系人信息等各种类型...

    RMS管理数据的系统

    RMS提供了一种简单而有效的数据持久化方式,使开发人员能够轻松地存储和检索应用程序数据。 #### 二、RMS的基本概念 RMS的核心组件包括RecordStore(记录存储)和Record(记录)。RecordStore相当于数据库中的表,...

    java rms常用操作例子

    RMS提供了一种简单的方法来存储和检索应用程序的数据,例如用户设置、游戏得分或者任何其他需要持久化存储的信息。在Java手机开发中,RMS是重要的组成部分,因为它允许应用程序在没有网络连接的情况下也能处理数据。...

    J2ME 之RMS 很基础很全面

    在J2ME中,RMS(Record Management System)是一个小型的数据库管理系统,专门设计用于在资源有限的设备如手机上进行数据存储和持久化。RMS提供了简单且高效的数据管理方式,适用于那些无法使用全功能数据库系统的...

    打造自己的RMS框架源代码

    它在IT领域中扮演着至关重要的角色,特别是在大型系统或分布式应用中,它可以帮助开发者高效地处理数据存储、检索和权限控制。打造自己的RMS框架源代码是一个极具挑战性的任务,因为它涉及到对数据库操作、安全策略...

    Java RMS相关实例附源码.rar

    Java RMS(Record Management System)是Java ME(Micro Edition)平台中的数据存储系统,主要用于移动设备上的应用程序,如智能手机和平板电脑。它提供了一个简单的数据库机制,允许开发者在资源有限的设备上存储和...

    RMS.rar_java 通讯录_rms_通讯录

    RMS是Java ME应用程序用来存储和检索数据的标准机制,特别适用于资源有限的设备,如早期的智能手机和平板电脑。它提供了一种简单的方式来创建、读取、更新和删除记录,类似于关系型数据库的CRUD操作。RMS的使用不...

    j2me RMS记录管理系统 备忘录

    它可能包含了打开、创建、读取、写入和关闭RMS记录存储的逻辑,以便存储和检索Appointment对象。 5. **AppointmentComparator.java**:这是一个比较器类,用于比较Appointment对象,可能用于排序备忘事项列表。这...

    RMS-MidLet例子

    它为开发者提供了一种灵活、高效的方式来保存和检索应用程序的数据,比如游戏得分、用户设置或者通讯录等。RMS API 非常简单,易于学习,但功能强大,可以处理各种类型的数据。 在这个"RMS-MidLet例子"中,我们关注...

    j2me 手机开发 RMS SERVLET

    RMS是J2ME提供的一个本地数据库系统,它允许应用程序存储和检索数据,即使在没有网络连接的情况下也能正常工作。RMS适用于小型应用,它提供了简单的数据结构,如记录和记录集,适合管理少量关键数据。开发者可以通过...

    RMS.rar_RMS图像

    2. 数据库交互:这里的RMS可能包含了一个数据库模块,用于存储和检索图像数据。常见的数据库系统有SQL Server、MySQL等,而文件名中的"msado15.dll"是微软的ADO(ActiveX Data Objects)库,用于访问数据库,它提供...

    J2ME RMS 小试牛刀

    RMS(Record Management System)是J2ME中的数据存储机制,它允许应用程序在设备上保存和检索数据,类似于小型的数据库系统。本篇文章将详细介绍如何在J2ME应用中使用RMS进行数据管理,并通过一个简单的示例来演示其...

    15. RMS编程1基础知识2.rar

    为了检索数据,可以使用`RecordEnumeration`对象遍历RecordStore中的所有记录。 RMS还提供了事务处理,以确保数据的一致性。通过`beginTransaction()`和`commitTransaction()`方法,开发者可以在一组操作之间保持...

    RMS文档清单.rar

    3. **文档管理**:在RMS中,文档管理是至关重要的部分,因为它涉及政策、流程、报告和其他关键文件的存储、检索和版本控制。良好的文档管理有助于保持合规性,提高协作效率,并确保所有团队成员都能访问最新的信息。...

    15. RMS编程1基础知识1.rar

    RMS是J2ME中的数据持久化机制,允许开发者在设备上保存和检索用户数据,即使在设备重启后数据依然保留。RMS由一套API组成,包括`javax.microedition.rms`包下的几个关键类和接口,如`RecordStore`、`...

    J2me数据库引擎类.rar_j2me_rms

    Java Micro Edition(J2ME)是Java平台的一个子集,主要设计用于资源有限的设备,如移动电话和嵌入式系统。在J2ME中,Record ...通过理解和使用这个数据库引擎类,他们可以更高效地存储和检索应用程序所需的数据。

    郭克华J2ME实例教程完整版之RMS编程1

    RMS提供了一个简单但强大的数据库系统,使得开发者可以方便地在设备上存储和检索数据。 郭克华的《J2ME实例教程》全面介绍了J2ME的开发技术,其中RMS编程部分对于初学者来说是非常实用的。通过WMV格式的视频教程,...

    关于J2ME中RMS的使用解析

    RMS 提供了一种简单的方法来存储和检索应用程序所需的数据,尤其是在资源有限的移动设备上。它类似于小型数据库,用于保存各种类型的信息,如用户设置、游戏得分或任何其他需要长期保留的数据。 RMS 的使用主要包括...

    利用RMS编写的简单电话薄程序 初学者适用!

    **RMS简介** ...它展示了如何利用RMS进行数据存储和检索,以及如何构建基本的用户界面和数据处理逻辑。通过实践这个项目,开发者能够理解移动设备上的数据管理,并为后续更复杂的应用开发打下基础。

Global site tag (gtag.js) - Google Analytics