⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recorddb.java

📁 本光盘是《J2ME无线移动游戏开发》一书的配套光盘
💻 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 + -