📄 recorddb.java
字号:
/**
*记录型数据库类
*@CopyRight:Move2008
*@Author:bedlang
*@Version 1.0 2003/7/22
*/
package mmae.util;
import java.io.*;
import javax.microedition.rms.*;
import mmae.util.Tool;
public class RecordDB {
private RecordStore myRecordStore;
private RecordEnumeration myEnumeration;
private String storeName;
public RecordDB()
{
}
/**
* 删除一个库,它是一个static方法,可以在RecordDB没有open的情况下执行。
*/
public static void deleteStore(String StoreName)
{
try {
RecordStore.deleteRecordStore(StoreName);
} catch (Exception e) {
System.out.println(StoreName + " - " + e.getMessage());
}
}
/**
* 创建(打开)数据库,它和RecordStore的openRecordStore方法功能相同。
*/
public void open(String StoreName) {
storeName = StoreName;
try {
myRecordStore = RecordStore.openRecordStore(storeName, true);
} catch (RecordStoreException rse) {
System.out.println("open "+storeName+" error:"+rse.getMessage());
}
}
/**
* 关闭已打开的数据库
*/
public void close() {
try {
myRecordStore.closeRecordStore();
} catch (RecordStoreNotOpenException rsnoe) {
} catch (RecordStoreException rse) {
System.out.println("close "+storeName+" error:"+rse.getMessage());
}
}
/**
* 求得数据库的记录数
*/
public int getNumRecords() {
int j = 0;
try {
j = myRecordStore.getNumRecords();
} catch (RecordStoreNotOpenException rsnoe) {
System.out.println("getNumRecord error:"+rsnoe.getMessage());
}
return j;
}
/**
*增加记录,返回新增加记录的记录序号<br>
*Record为要增加记录的内容,方法内部已经将Record字符串转换为了UTF编码。
*/
public int addRecord(String Record) {
int curRecord=0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream outputStream = new DataOutputStream(baos);
try
{
outputStream.writeUTF(Record);
byte[] b = baos.toByteArray();
curRecord = myRecordStore.addRecord(b, 0, b.length);
}
catch (Exception e)
{
System.out.println("Engine Error:addRecord");
}
return curRecord;
}
/**
*增加记录
*/
public int addRecord(byte[] b)
{
int curRecord = -1;
try
{
curRecord = myRecordStore.addRecord(b, 0, b.length);
}
catch (Exception e)
{
System.out.println("Engine Error:addRecord");
}
return curRecord;
}
/**
*得到一条记录的内容<br>
*RecordNum为要取的记录号,RecordDB的起始号从1开始,返回的字符串已转换为UTF编码。
*/
public String getRecord(int RecordNum)
{
String record_str=null;
try{
byte[] b = myRecordStore.getRecord(RecordNum);
ByteArrayInputStream bais = new ByteArrayInputStream(b);
DataInputStream inputStream = new DataInputStream(bais);
record_str = inputStream.readUTF();
}catch(Exception e){
System.out.println("Engine Error:getRecord");
}
return record_str;
}
/**
*得到记录
*/
public byte[] getBytesRecord(int recordNum)
{
try{
byte[] b = myRecordStore.getRecord(recordNum);
return b;
}catch(Exception e){
System.out.println("Engine Error:getRecord");
return null;
}
}
/**
*修改一条记录,方法内部已经将Record字符串转换为了UTF编码。
*/
public void setRecord(int RecordId, String Record)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream outputStream = new DataOutputStream(baos);
try
{
outputStream.writeUTF(Record);
byte[] b = baos.toByteArray();
myRecordStore.setRecord(RecordId, b, 0, b.length);
}
catch (Exception e)
{
}
}
/**
*删除一条记录,RecordDB的起始号从1开始
*/
public void deleteRecord(int RecordId)
{
try
{
myRecordStore.deleteRecord(RecordId);
}
catch (Exception e)
{
}
}
/**
* 取出Str字符串的某个字段值,FieldNo为字段号(起始位置为1),SeparatorChar为字段分隔符
* 见mmae.util.Tool.getField
*/
public String getField(String Str, int FieldNo, String SeparatorChar)
{
return Tool.getField(Str,FieldNo,SeparatorChar);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -