读书人

j2me工具种:Database.java

发布时间: 2012-09-05 15:19:35 作者: rapoo

j2me工具类:Database.java

/** * <p>Title: </p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2008</p> * * <p>Company: WorthTech</p> * * @author bruce * @version 1.0 */import javax.microedition.rms.*;//import java.io.*;//import java.util.Hashtable;//import com.mpay.io.SerializerInputStream;//import com.mpay.io.SerializerOutputStream;//import com.mpay.io.SerializationException;//import com.mpay.util.commlib.info.MenuInfo;//import com.mpay.util.commlib.ByteArray;//import com.mpay.util.commlib.info.BillInfo;//import com.mpay.util.commlib.TypeConvert;public class Database {private RecordStore store;public static Database instance;public Database() {}public static Database getDatabase() {if (instance == null) {instance = new Database();}return instance;}public void open(String tableName) {try {this.store = RecordStore.openRecordStore(tableName, true);} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("打开数据库出错:" + ex.getMessage());try {store.closeRecordStore();store = null;} catch (Exception e) {e.printStackTrace();}}}public int getNumRecords() {try {return this.store.getNumRecords();} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("未找到记录" + ex.getMessage());return 0;}}public void close() {try {this.store.closeRecordStore();} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("数据库尚未打开:" + ex.getMessage());} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("数据库关闭出错:" + ex.getMessage());}}public int addRecord(String content) {byte[] data = content.getBytes();try {return this.store.addRecord(data, 0, data.length);} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("数据库尚未打开:" + ex.getMessage());} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("写入数据出错:" + ex.getMessage());}return -1;}public int addRecord(byte[] data) {try {return this.store.addRecord(data, 0, data.length);} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("数据库尚未打开:" + ex.getMessage());} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("写入数据出错:" + ex.getMessage());}return -1;}//public int addRecord(Object obj) {//ByteArrayOutputStream baos = new ByteArrayOutputStream();//SerializerOutputStream out = null;//try {//out = new SerializerOutputStream(baos);//if (obj instanceof MessageInfo) {//((MessageInfo) obj).serialize(out);//} else if (obj instanceof MenuInfo) {//((MenuInfo) obj).serialize(out);//} else if (obj instanceof Constants) {//((Constants) obj).serialize(out);//} else if (obj instanceof BillInfo) {//((BillInfo) obj).serialize(out);//}//out.flush();//byte[] data = baos.toByteArray();//return this.addRecord(data);//} catch (SerializationException ex) {//ex.printStackTrace();////System.out.println("序列化对象时异常:" + ex.getMessage());//} catch (IOException e) {//e.printStackTrace();////System.out.println("序列化对象存储时异常:" + e.getMessage());//} finally {//try {//if (out != null) {//out.close();//}//if (baos != null) {//baos.close();//}//} catch (IOException ex1) {//ex1.printStackTrace();//}//}//return -1;//}public byte[] getRecord(int recordId) {try {return this.store.getRecord(recordId);} catch (InvalidRecordIDException ex) {ex.printStackTrace();//System.out.println("不正确的记录ID索引" + ex.getMessage());return null;} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("数据库尚未打开:" + ex.getMessage());return null;} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("读取数据出错:" + ex.getMessage());return null;}}//public Object getMessageRecord(int recordId, Object obj) {//Object object = obj;////        //System.out.println("recordId=" + recordId);//byte[] data = this.getRecord(recordId);////        //System.out.println("data[]==" + TypeConvert.toHexString(data));////ByteArrayInputStream bais = new ByteArrayInputStream(data);//SerializerInputStream in = new SerializerInputStream(bais);//try {//if (obj instanceof MessageInfo) {//ByteArray array = new ByteArray();//array.add(data);//object = new MessageInfo(data);//((MessageInfo) object).deserialize(in);//} else if (obj instanceof MenuInfo) {//((MenuInfo) object).deserialize(in);//} else if (obj instanceof Constants) {//((Constants) object).deserialize(in);//} else if (obj instanceof BillInfo) {//((BillInfo) object).deserialize(in);//}//} catch (SerializationException ex) {//ex.printStackTrace();////System.out.println("反序列化对象时异常:" + ex.getMessage());//} finally {//try {//if (in != null) {//in.close();//}//if (bais != null) {//bais.close();//}//} catch (IOException ie) {//ie.printStackTrace();//}//}//return object;//}public void updateRecord(int recordId, byte[] newdata) {try {this.store.setRecord(recordId, newdata, 0, newdata.length);} catch (InvalidRecordIDException ex) {ex.printStackTrace();//System.out.println("不正确的记录ID索引" + ex.getMessage());} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("数据库尚未打开:" + ex.getMessage());} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("读取数据出错:" + ex.getMessage());}}public void updateRecord(int recordId, String newdata) {byte[] data = newdata.getBytes();try {this.store.setRecord(recordId, data, 0, data.length);} catch (InvalidRecordIDException ex) {ex.printStackTrace();//System.out.println("不正确的记录ID索引" + ex.getMessage());} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();//System.out.println("数据库尚未打开:" + ex.getMessage());} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("读取数据出错:" + ex.getMessage());}}//public void updateRecord(int recordId, Object obj) {//ByteArrayOutputStream baos = new ByteArrayOutputStream();//SerializerOutputStream out = null;//try {//out = new SerializerOutputStream(baos);//if (obj instanceof MessageInfo) {//((MessageInfo) obj).serialize(out);//} else if (obj instanceof MenuInfo) {//((MenuInfo) obj).serialize(out);//} else if (obj instanceof Constants) {//((Constants) obj).serialize(out);//} else if (obj instanceof BillInfo) {//((BillInfo) obj).serialize(out);//}//out.flush();//byte[] data = baos.toByteArray();//this.updateRecord(recordId, data);//} catch (SerializationException ex) {//ex.printStackTrace();////System.out.println("序列化对象时异常:" + ex.getMessage());//} catch (IOException ie) {//ie.printStackTrace();////System.out.println("序列化对象存储时异常:" + ie.getMessage());//} finally {//try {//if (out != null) {//out.close();//}//if (baos != null) {//baos.close();//}//} catch (IOException ex1) {//ex1.printStackTrace();//}//}//}public void deleteRecord(int recordId) {try {this.store.deleteRecord(recordId);} catch (InvalidRecordIDException ex) {ex.printStackTrace();} catch (RecordStoreNotOpenException ex) {ex.printStackTrace();} catch (RecordStoreException ex) {ex.printStackTrace();}}public void clearTable(String tableName) {try {Thread.currentThread().sleep(1000);this.store.deleteRecordStore(tableName);} catch (InterruptedException ie) {ie.printStackTrace();} catch (RecordStoreException ex) {ex.printStackTrace();//System.out.println("删除数据库出错:" + ex.getMessage());try {Thread.currentThread().sleep(1000);this.store.deleteRecordStore(tableName);} catch (InterruptedException ie) {ie.printStackTrace();} catch (RecordStoreException rs) {rs.printStackTrace();}}}}

读书人网 >其他数据库

热点推荐