/**
* <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();
}
}
}
}
分享到:
相关推荐
15. **Java工具链中的java.exe** - **选项分析** - A. Java文档生成器:javadoc命令。 - B. Java解释器:java命令,用于运行Java应用程序。 - C. Java编译器:javac命令。 - D. Java类分解器:没有此类工具。...
4. **多线程**:Java 2引入了更强大的多线程支持,`java.lang.Thread`和`java.util.concurrent`包提供了创建、管理和同步线程的工具。 5. **网络编程**:`java.net`包包含了处理网络连接和协议的类,使得Java程序能...
15. File类:File类属于Java.io包,用于处理文件和目录,它是字节流类,选项B正确。 此外,试题中还涉及了Java的一些基本概念: 1. 标识符:Java的标识符可以由字母、数字和下划线组成,且不能以数字开头。 2. ...
3. **Java ME (J2ME)**:Java Micro Edition,适用于移动设备和嵌入式系统的开发。 **Java开发工具** 初学者通常从简单的文本编辑器(如记事本)开始,然后逐渐过渡到高级的集成开发环境(IDE),如Eclipse、...
4. **java.com.cn**(<http://www.java.com.cn/>):官方站点,提供最新的Java资讯和技术支持。 5. **IBM DeveloperWorks**(<http://www-900.ibm.com/developerWorks/cn/java/index.shtml>):IBM提供的开发者资源...
import java.util.Date; public class Demo1 { public static void main(String[] args) { System.out.print("你好,今天是 "); System.out.println(new Date()); } } ``` 5. Java程序基本结构: - package...
- **JDK**:Java Development Kit,包含Java编译器(javac.exe)、解释器(java.exe)、文档生成器(javadoc.exe)和调试器(jdb.exe)等工具。 - **IDE**:集成开发环境,如JBuilder、Eclipse等,提供了更高效的开发体验。 ...
主要涵盖了Java的基础知识,包括类与对象、访问修饰符、Java的历史、Applet、数据类型、接口、JDBC、Eclipse、Swing、布局管理器、Java虚拟机(JVM)特性、J2ME、File类、JDK工具、数据类型转换以及Java的特性等。...
5. **JDBC (Java Database Connectivity)**:允许Java程序连接数据库的标准API。 6. **JavaMail**:用于发送和接收电子邮件的Java API。 #### 三、Java的开发工具和资源 1. **Eclipse** 和 **IntelliJ IDEA**:两...
7. **第7章 Java数据库编程**: 数据库连接和操作是Java开发中的重要部分,这一章可能会讲解如何使用JDBC(Java Database Connectivity)进行数据库操作,包括连接数据库、执行SQL语句、处理结果集等。 8. **第8章 ...
- **JDBC(Java Database Connectivity)**:提供Java程序访问数据库的接口,是数据操作的重要工具。 - **JavaMail**:用于发送和接收电子邮件的API,增强了应用的交互性。 #### 学习资源与实践建议 对于初学者,...
5. **编码转换**:`java.nio.charset`包提供编码转换工具,例如`CharsetEncoder`和`CharsetDecoder`。 6. **访问数据库**:Java使用JDBC(Java Database Connectivity)访问数据库,`Statement`用于执行静态SQL,而...
4. **JDK工具**:Java Development Kit (JDK) 包含了开发和运行Java程序所需的工具,其中`javadoc.exe`用于生成API文档,`javac.exe`用于编译Java源代码,`java.exe`用于运行Java程序,`javap.exe`用于反汇编编译后...
- **java.lang**:提供核心运行时类,但与J2SE相比有所简化。 - **java.io**:提供基本的输入输出支持,但功能相对有限。 - **java.util**:提供基本的数据结构支持,如ArrayList等。 ##### 1.2 MIDP API - **UI...
20. **JDBC(Java Database Connectivity)**:Java数据库连接,用于与各种数据库进行交互的API。 21. **反射(Reflection)**:Java反射机制允许在运行时动态访问类的信息,如类名、方法、属性等。 22. **集合...
Java技术体系主要包括三个主要部分:J2SE(Java 2 Platform, Standard Edition)、J2EE(Java 2 Platform, Enterprise Edition)和J2ME(Java 2 Platform, Micro Edition)。J2SE是Java平台的基础,提供了用于开发和...
4. **JDBC(Java Database Connectivity)**:通过JDBC,Java程序能够连接并操作各种关系型数据库。熟练运用JDBC是进行数据库交互的关键技能之一。 5. **JavaMail**:用于发送电子邮件的API,支持多种邮件协议,如...
24. **JDBC(Java Database Connectivity)**:Java与数据库交互的API,允许连接和操作各种数据库。 25. **JNDI(Java Naming and Directory Interface)**:用于查找和管理分布式环境中的资源。 26. **RMI...