以下代码是J2ME简单的数据库源码,提供给大家分享
package cn.hipha.util;
import javax.microedition.rms.RecordStore;
public class JmeDB {
private RecordStore rs = null;
public JmeDB() {
}
public JmeDB(String dbName) {
openDB(dbName);
}
public void openDB(String dbName) {
try {
rs = RecordStore.openRecordStore(dbName, true);
} catch (Exception e) {
}
}
public String getRecord(String name) throws Exception {
byte[] bytes = getRecord(name, 1);
if (bytes != null && bytes.length > 0)
return new String(bytes);
return "";
}
public byte[] getRecord(String name, int index) throws Exception {
RecordStore rss = getRecordSotre(name);
byte[] bytes = getRecord(rss, index);
closeRecordStore(rss);
return bytes;
}
private byte[] getRecord(RecordStore rs, int index) throws Exception {
if (rs == null) {
throw new Exception("Database desn't open!");
}
try {
if (rs.getNumRecords() >= index) {
byte[] byte1 = rs.getRecord(index);
return byte1;
}
} catch (Exception e) {
}
return new byte[0];
}
public void setRecord(String name, String record) throws Exception {
setRecord(name, 1, record);
}
public void setRecord(String name, int index, String record)
throws Exception {
byte[] data = record.getBytes("UTF-8");
setRecord(name, index, data);
}
public void setRecord(String name, byte[] data)throws Exception {
setRecord(name, 1, data);
}
public void setRecord(String name, int index, byte[] data)throws Exception {
RecordStore rss = getRecordSotre(name);
setRecord(rss, index, data);
closeRecordStore(rss);
}
protected boolean hasRecord(RecordStore rs, String name) throws Exception {
if (rs == null) {
throw new Exception("Database desn't open!");
}
boolean flag = false;
for (int i = 1; i <= rs.getNumRecords(); i++) {
byte[] bytes = getRecord(rs, i);
if (bytes != null && bytes.length > 0) {
String temp = new String(bytes);
if (name.trim().equals(temp.trim())) {
flag = true;
break;
}
}
}
return flag;
}
private RecordStore getRecordSotre(String name) throws Exception {
if (hasRecord(rs, name)) {
return RecordStore.openRecordStore(name, false);
} else {
byte[] data = name.getBytes("UTF-8");
setRecord(rs, rs.getNextRecordID(), data);
return RecordStore.openRecordStore(name, true);
}
}
private void setRecord(RecordStore rs, int index, byte[] data)
throws Exception {
if (rs == null) {
throw new Exception("Database desn't open!");
}
try {
if (data != null) {
int id = rs.getNextRecordID();
if (id <= index) {
rs.addRecord(data, 0, data.length);
} else {
rs.setRecord(index, data, 0, data.length);
}
}
} catch (Exception e) {
}
}
public void closeDB() {
closeRecordStore(rs);
}
private void closeRecordStore(RecordStore rs){
if (rs != null) {
try {
rs.closeRecordStore();
} catch (Exception e) {
}
}
}
}
分享到:
相关推荐
这个压缩包“J2ME开发源码.rar”包含的是与J2ME应用程序开发相关的源代码,可能是为了教学、学习或者实际项目开发而提供的。J2ME开发涉及多个组件和技术,下面我们将详细探讨这些知识点。 1. **KVM(Java Virtual ...
它阐释了J2ME的基本体系结构和功能,总结了J2ME与J2SE和J2EE的差异,深入探讨了构建J2ME数据库所需的关键内容,例如,命令、项、事件处理、低层和高层显示接口;介绍了移动开发的高级技术,包括安全、Web服务、住处...
J2ME应用的数据存储一般采用RecordStore系统,这是一个简单的键值对数据库,用于保存用户数据和游戏进度。 8. **优化技巧** 由于资源限制,J2ME游戏需要进行性能优化。例如,减少绘图调用、使用位图操作而非颜色...
源码可能包含对SQLite数据库(如果设备支持)或记录存储(RecordStore)API的使用,以保存用户信息、历史聊天记录等。 4. 多线程:为了实现异步处理,如同时接收和发送消息,源码可能会使用多线程。每个连接或活动...
1. RMS是J2ME中用于存储数据的本地数据库系统,类似于关系型数据库中的表。每个联系人信息对应一条记录,通过RecordID进行标识。 2. 数据读写:使用RecordStore类进行RMS的操作,包括打开、创建、读取、更新和删除...
《J2ME手机词典源码解析》 J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,专为资源有限的移动设备如手机、PDA等设计。J2ME提供了丰富的API,使得开发者能够在这些设备上创建各种功能强大的应用程序,...
3. **RMS**:J2ME中的本地数据存储机制,允许应用程序在设备上持久化数据,非常适合于不支持数据库的移动设备。 **二、RMS详解** 1. **RecordStore**:RMS的核心类,用于创建、打开、修改和删除数据记录。在电子...
【标题】: J2ME股票系统源码解析 在移动通信技术蓬勃发展的年代,Java 2 Micro Edition(J2ME)作为一个轻量级的开发平台,广泛应用于移动设备上,如早期的智能手机和平板电脑。"J2ME股票系统源码"就是基于这一平台...
阐释了J2ME的基本体系结构和功能,总结了J2ME与J2SE和J2EE的差异,深入探讨了构建J2ME数据库所需的关键内容,例如,命令、项、事件处理、低层和高层显示接口;介绍了移动开发的高级技术,包括安全、Web服务、住处...
5. **数据存储**:J2ME使用RecordStore系统来存储小量数据,类似于简单的数据库。RecordStore可以用来保存用户数据或游戏进度。 6. **游戏开发**:J2ME中的Game API或者使用Canvas类,可以让开发者创建2D游戏。游戏...
**J2ME源码(移动图书馆)** J2ME,全称Java Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能手表等。J2ME提供了丰富的API,使得开发者能够在这些平台上构建功能丰富的应用...
《手机短信软件源码 J2ME:探索移动通信与编程技术》 在移动通信领域,J2ME(Java 2 Micro Edition)作为一种轻量级的Java平台,广泛应用于各种小型设备,包括手机。本篇文章将深入探讨一款基于J2ME的手机短信软件...
RMS是J2ME中用于存储数据的本地数据库系统。它支持简单的查询和事务处理,适合在资源有限的移动设备上存储小规模的数据。在本源码中,RMS可能用于存储用户配置、通话记录、联系人信息等。 5. **网络回拨电话的工作...
本压缩包“j2me无线应用学习源码.rar”包含了一系列用于学习J2ME无线应用开发的源代码,是初学者和进阶者深入理解J2ME技术的宝贵资源。通过分析这些源码,我们可以深入了解J2ME的架构、编程模型以及如何在实际项目中...
本文将深入探讨如何在J2ME中实现电话记录的储存功能,并提供相关的源码解析。 首先,我们需要理解J2ME的基本架构。J2ME主要由配置(Configurations)和Profile(Profiles)组成,其中Mobile Information Device ...
标题中的“j2ME电话簿案例源码”指的是一个基于Java 2 Micro Edition(j2ME)平台开发的电话簿应用程序的源代码。j2ME是Java为移动设备和嵌入式设备提供的一种轻量级的开发框架,常用于早期的手机应用开发,包括游戏...
共3个分卷,36M,这是第一个 作者: (美)James Keogh 译者: 潘颖 王磊 ...·管理数据,并理解数据库的概念 ·展望使用Web服务、信息管理和其他关键功能的移动应用程序 ·使用HTTP连接、网络和Web服务协同工作
这个压缩包“J2ME的素材与源码.rar”包含了丰富的J2ME相关学习资源,非常适合对移动开发感兴趣的初学者。以下是基于J2ME的一些关键知识点的详细说明: 1. **J2ME架构**:J2ME由配置(Configurations)和 profiles...
- **Record Management System (RMS)**: J2ME中的数据存储机制,提供类似数据库的功能。 5. **多媒体支持** - **MIDI和WAV**: 支持MIDI音乐和WAV音频文件的播放。 - **Image处理**: 加载、显示和操作位图图像,...
这本书的源码提供了丰富的实例,帮助读者深入理解J2ME编程的核心概念。 1. **J2ME架构与环境** J2ME由配置(Configurations)和框架(Profiles)组成。配置定义了基础的Java虚拟机(JVM)和核心库,而框架则添加了...