📄 recorddb.java
字号:
package ch12;
import java.io.*;
import java.util.*;
import javax.microedition.rms.*;
public class RecordDB {
//声明一个记录存储
private RecordStore rs = null;
//声明一个记录枚举集
private RecordEnumeration re = null;
//声明一个代表记录数的变量
private int numStore;
/*
1.构造器
*/
public RecordDB() {
try {
rs = RecordStore.openRecordStore("RecordDB", true);
}
catch (Exception e) {
System.out.println("无法打开记录集");
}
}
/*
2.增加记录
*/
public void addRecord(int id, String name, String score, String rank,
String date) {
try {
//1.如果添加的记录是String型的,就可以直接用byte data[]=str.getBytes();//先转化为字节;
// addRecord(data,0,data.lenght());
//2.对于高级应用,即添加记录的形式比较多,则要采用下面的形式了,先定义字节数组输出流,在它的基础上定义数据输出流,
//这里主要利用DataOutputStream可以写原始数据类型的特点向输出流中写入各种类型的数据,
//最后用toByteArray()方法将数据转换成字节数组.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(id);
dos.writeUTF(name);
dos.writeUTF(score);
dos.writeUTF(rank);
dos.writeUTF(date);
byte rec[] = baos.toByteArray();
try {
rs.addRecord(rec, 0, rec.length);
}
catch (Exception e) {
}
}
catch (Exception e) {
}
}
/*
3.删除记录
*/
public void deleteRecord(int id) {
int recordID = getRecordIDByID(id);
try {
rs.deleteRecord(recordID);
}
catch (Exception e) {
}
}
/*
4.修改记录
*/
public void modifyRecord(int id, String name, String score, String rank,
String date) {
int recordID = getRecordIDByID(id);
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(id);
dos.writeUTF(name);
dos.writeUTF(score);
dos.writeUTF(rank);
dos.writeUTF(date);
byte rec[] = baos.toByteArray();
baos.close();
dos.close();
try {
rs.setRecord(recordID, rec, 0, rec.length);
}
catch (Exception e) {
}
}
catch (Exception e) {
}
}
/*
5.判断id是否存在
*/
public int getRecordIDByID(int id) {
int _id = -1;
Record_Filter rf = new Record_Filter(id);
try {
re = rs.enumerateRecords(rf, null, false);
if (re.hasNextElement()) {
_id = re.nextRecordId();
}
}
catch (Exception e) {
}
return _id;
}
/*
6.根据ID号获得记录
*/
public Record getRecord(int id) {
Record record = null;
byte data[] = new byte[200];
int _id;
String _name;
String _score;
String _rank;
String _date;
Record_Filter rf = new Record_Filter(id);
try {
re = rs.enumerateRecords(rf, null, true);
if (re.hasNextElement()) {
data = re.nextRecord();
}
ByteArrayToRecord batr = new ByteArrayToRecord(data);
_id = batr.getID();
_name = batr.getName();
_score = batr.getScore();
_rank = batr.getRank();
_date = batr.getDate();
record = new Record(_id, _name, _score, _rank, _date);
}
catch (Exception e) {
}
finally {
if (re != null) {
re.destroy();
}
}
return record;
}
/*
7.根据姓名获得记录
*/
public Record getRecord(String name) {
Record record = null;
byte data[] = new byte[200];
int _id;
String _name;
String _score;
String _rank;
String _date;
Record_Filter rf = new Record_Filter(name);
try {
re = rs.enumerateRecords(rf, null, true);
if (re.hasNextElement()) {
data = re.nextRecord();
}
ByteArrayToRecord batr = new ByteArrayToRecord(data);
_id = batr.getID();
_name = batr.getName();
_score = batr.getScore();
_rank = batr.getRank();
_date = batr.getDate();
record = new Record(_id, _name, _score, _rank, _date);
}
catch (Exception e) {
}
finally {
if (re != null) {
re.destroy();
}
}
return record;
}
/*
8.获取所有记录
*/
public Vector getAllRecords(int sortBy) {
Vector vectorRecords = new Vector();
Record record;
int _id;
String _name;
String _score;
String _rank;
String _date;
Record_Comparator rc = new Record_Comparator(sortBy);
try {
re = rs.enumerateRecords(null, rc, true); //
while (re.hasNextElement()) {
ByteArrayToRecord batr = new ByteArrayToRecord(re.nextRecord());
_id = batr.getID();
_name = batr.getName();
_score = batr.getScore();
_rank = batr.getRank();
_date = batr.getDate();
record = new Record(_id, _name, _score, _rank, _date);
vectorRecords.addElement(record);
}
}
catch (Exception e) {
}
finally {
if (re != null) {
re.destroy();
}
}
return vectorRecords;
}
/*
9.关闭记录存储
*/
public void closeRS() {
try {
rs.closeRecordStore();
}
catch (Exception e) {
}
}
/*
10.获取记录数
*/
public int getnumStore() {
try {
numStore = rs.getNumRecords();
return numStore;
}
catch (Exception e) {
return numStore = -1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -