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

📄 recorddb.java

📁 MMAE1.0开发者版源代码 用于扩展java me移动开发引擎,这是1.0版的源码.
💻 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 + -