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是J2ME MIDP(Mobile Information Device Profile)的一部分,它提供了一种轻量级的数据库系统,用于在没有标准SQL数据库支持的设备上存储和检索数据。RMS可以用来保存用户设置、游戏进度、联系人信息等各种类型...
RMS提供了一种简单而有效的数据持久化方式,使开发人员能够轻松地存储和检索应用程序数据。 #### 二、RMS的基本概念 RMS的核心组件包括RecordStore(记录存储)和Record(记录)。RecordStore相当于数据库中的表,...
RMS提供了一种简单的方法来存储和检索应用程序的数据,例如用户设置、游戏得分或者任何其他需要持久化存储的信息。在Java手机开发中,RMS是重要的组成部分,因为它允许应用程序在没有网络连接的情况下也能处理数据。...
在J2ME中,RMS(Record Management System)是一个小型的数据库管理系统,专门设计用于在资源有限的设备如手机上进行数据存储和持久化。RMS提供了简单且高效的数据管理方式,适用于那些无法使用全功能数据库系统的...
它在IT领域中扮演着至关重要的角色,特别是在大型系统或分布式应用中,它可以帮助开发者高效地处理数据存储、检索和权限控制。打造自己的RMS框架源代码是一个极具挑战性的任务,因为它涉及到对数据库操作、安全策略...
Java RMS(Record Management System)是Java ME(Micro Edition)平台中的数据存储系统,主要用于移动设备上的应用程序,如智能手机和平板电脑。它提供了一个简单的数据库机制,允许开发者在资源有限的设备上存储和...
RMS是Java ME应用程序用来存储和检索数据的标准机制,特别适用于资源有限的设备,如早期的智能手机和平板电脑。它提供了一种简单的方式来创建、读取、更新和删除记录,类似于关系型数据库的CRUD操作。RMS的使用不...
它可能包含了打开、创建、读取、写入和关闭RMS记录存储的逻辑,以便存储和检索Appointment对象。 5. **AppointmentComparator.java**:这是一个比较器类,用于比较Appointment对象,可能用于排序备忘事项列表。这...
它为开发者提供了一种灵活、高效的方式来保存和检索应用程序的数据,比如游戏得分、用户设置或者通讯录等。RMS API 非常简单,易于学习,但功能强大,可以处理各种类型的数据。 在这个"RMS-MidLet例子"中,我们关注...
RMS是J2ME提供的一个本地数据库系统,它允许应用程序存储和检索数据,即使在没有网络连接的情况下也能正常工作。RMS适用于小型应用,它提供了简单的数据结构,如记录和记录集,适合管理少量关键数据。开发者可以通过...
2. 数据库交互:这里的RMS可能包含了一个数据库模块,用于存储和检索图像数据。常见的数据库系统有SQL Server、MySQL等,而文件名中的"msado15.dll"是微软的ADO(ActiveX Data Objects)库,用于访问数据库,它提供...
RMS(Record Management System)是J2ME中的数据存储机制,它允许应用程序在设备上保存和检索数据,类似于小型的数据库系统。本篇文章将详细介绍如何在J2ME应用中使用RMS进行数据管理,并通过一个简单的示例来演示其...
为了检索数据,可以使用`RecordEnumeration`对象遍历RecordStore中的所有记录。 RMS还提供了事务处理,以确保数据的一致性。通过`beginTransaction()`和`commitTransaction()`方法,开发者可以在一组操作之间保持...
3. **文档管理**:在RMS中,文档管理是至关重要的部分,因为它涉及政策、流程、报告和其他关键文件的存储、检索和版本控制。良好的文档管理有助于保持合规性,提高协作效率,并确保所有团队成员都能访问最新的信息。...
RMS是J2ME中的数据持久化机制,允许开发者在设备上保存和检索用户数据,即使在设备重启后数据依然保留。RMS由一套API组成,包括`javax.microedition.rms`包下的几个关键类和接口,如`RecordStore`、`...
Java Micro Edition(J2ME)是Java平台的一个子集,主要设计用于资源有限的设备,如移动电话和嵌入式系统。在J2ME中,Record ...通过理解和使用这个数据库引擎类,他们可以更高效地存储和检索应用程序所需的数据。
RMS提供了一个简单但强大的数据库系统,使得开发者可以方便地在设备上存储和检索数据。 郭克华的《J2ME实例教程》全面介绍了J2ME的开发技术,其中RMS编程部分对于初学者来说是非常实用的。通过WMV格式的视频教程,...
RMS 提供了一种简单的方法来存储和检索应用程序所需的数据,尤其是在资源有限的移动设备上。它类似于小型数据库,用于保存各种类型的信息,如用户设置、游戏得分或任何其他需要长期保留的数据。 RMS 的使用主要包括...
**RMS简介** ...它展示了如何利用RMS进行数据存储和检索,以及如何构建基本的用户界面和数据处理逻辑。通过实践这个项目,开发者能够理解移动设备上的数据管理,并为后续更复杂的应用开发打下基础。