`
makewish0122
  • 浏览: 28149 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

J2ME数据库源码

    博客分类:
  • J2ME
 
阅读更多

以下代码是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) {
   }
  }
 }
}

0
0
分享到:
评论

相关推荐

    J2ME开发源码.rar

    这个压缩包“J2ME开发源码.rar”包含的是与J2ME应用程序开发相关的源代码,可能是为了教学、学习或者实际项目开发而提供的。J2ME开发涉及多个组件和技术,下面我们将详细探讨这些知识点。 1. **KVM(Java Virtual ...

    J2ME开发大全pdf(中文+源码)

    它阐释了J2ME的基本体系结构和功能,总结了J2ME与J2SE和J2EE的差异,深入探讨了构建J2ME数据库所需的关键内容,例如,命令、项、事件处理、低层和高层显示接口;介绍了移动开发的高级技术,包括安全、Web服务、住处...

    J2ME游戏源代码

    J2ME应用的数据存储一般采用RecordStore系统,这是一个简单的键值对数据库,用于保存用户数据和游戏进度。 8. **优化技巧** 由于资源限制,J2ME游戏需要进行性能优化。例如,减少绘图调用、使用位图操作而非颜色...

    J2ME聊天室源码

    源码可能包含对SQLite数据库(如果设备支持)或记录存储(RecordStore)API的使用,以保存用户信息、历史聊天记录等。 4. 多线程:为了实现异步处理,如同时接收和发送消息,源码可能会使用多线程。每个连接或活动...

    手机通讯录 j2me 源码

    1. RMS是J2ME中用于存储数据的本地数据库系统,类似于关系型数据库中的表。每个联系人信息对应一条记录,通过RecordID进行标识。 2. 数据读写:使用RecordStore类进行RMS的操作,包括打开、创建、读取、更新和删除...

    J2ME手机词典源码

    《J2ME手机词典源码解析》 J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,专为资源有限的移动设备如手机、PDA等设计。J2ME提供了丰富的API,使得开发者能够在这些设备上创建各种功能强大的应用程序,...

    j2me电子课程表源码

    3. **RMS**:J2ME中的本地数据存储机制,允许应用程序在设备上持久化数据,非常适合于不支持数据库的移动设备。 **二、RMS详解** 1. **RecordStore**:RMS的核心类,用于创建、打开、修改和删除数据记录。在电子...

    是一个j2me 股票系统的源码

    【标题】: J2ME股票系统源码解析 在移动通信技术蓬勃发展的年代,Java 2 Micro Edition(J2ME)作为一个轻量级的开发平台,广泛应用于移动设备上,如早期的智能手机和平板电脑。"J2ME股票系统源码"就是基于这一平台...

    J2ME开发大全+源码(PDF)

    阐释了J2ME的基本体系结构和功能,总结了J2ME与J2SE和J2EE的差异,深入探讨了构建J2ME数据库所需的关键内容,例如,命令、项、事件处理、低层和高层显示接口;介绍了移动开发的高级技术,包括安全、Web服务、住处...

    j2me项目编程源码

    5. **数据存储**:J2ME使用RecordStore系统来存储小量数据,类似于简单的数据库。RecordStore可以用来保存用户数据或游戏进度。 6. **游戏开发**:J2ME中的Game API或者使用Canvas类,可以让开发者创建2D游戏。游戏...

    J2ME源码(移动图书馆)

    **J2ME源码(移动图书馆)** J2ME,全称Java Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能手表等。J2ME提供了丰富的API,使得开发者能够在这些平台上构建功能丰富的应用...

    手机短信软件 源码 J2ME

    《手机短信软件源码 J2ME:探索移动通信与编程技术》 在移动通信领域,J2ME(Java 2 Micro Edition)作为一种轻量级的Java平台,广泛应用于各种小型设备,包括手机。本篇文章将深入探讨一款基于J2ME的手机短信软件...

    J2ME网络回拨电话源码

    RMS是J2ME中用于存储数据的本地数据库系统。它支持简单的查询和事务处理,适合在资源有限的移动设备上存储小规模的数据。在本源码中,RMS可能用于存储用户配置、通话记录、联系人信息等。 5. **网络回拨电话的工作...

    j2me无线应用学习源码.rar

    本压缩包“j2me无线应用学习源码.rar”包含了一系列用于学习J2ME无线应用开发的源代码,是初学者和进阶者深入理解J2ME技术的宝贵资源。通过分析这些源码,我们可以深入了解J2ME的架构、编程模型以及如何在实际项目中...

    J2ME中电话记录储存的实现源码

    本文将深入探讨如何在J2ME中实现电话记录的储存功能,并提供相关的源码解析。 首先,我们需要理解J2ME的基本架构。J2ME主要由配置(Configurations)和Profile(Profiles)组成,其中Mobile Information Device ...

    j2me电话簿案例源码

    标题中的“j2ME电话簿案例源码”指的是一个基于Java 2 Micro Edition(j2ME)平台开发的电话簿应用程序的源代码。j2ME是Java为移动设备和嵌入式设备提供的一种轻量级的开发框架,常用于早期的手机应用开发,包括游戏...

    J2ME开发大全 (中文+英文+源代码) 完整高清晰PDF版(1/3)

    共3个分卷,36M,这是第一个 作者: (美)James Keogh 译者: 潘颖 王磊 ...·管理数据,并理解数据库的概念 ·展望使用Web服务、信息管理和其他关键功能的移动应用程序 ·使用HTTP连接、网络和Web服务协同工作

    J2ME的素材与源码.rar

    这个压缩包“J2ME的素材与源码.rar”包含了丰富的J2ME相关学习资源,非常适合对移动开发感兴趣的初学者。以下是基于J2ME的一些关键知识点的详细说明: 1. **J2ME架构**:J2ME由配置(Configurations)和 profiles...

    J2ME程序设计实例教程源码

    - **Record Management System (RMS)**: J2ME中的数据存储机制,提供类似数据库的功能。 5. **多媒体支持** - **MIDI和WAV**: 支持MIDI音乐和WAV音频文件的播放。 - **Image处理**: 加载、显示和操作位图图像,...

    《j2me移动设备程序设计》教材中的源码

    这本书的源码提供了丰富的实例,帮助读者深入理解J2ME编程的核心概念。 1. **J2ME架构与环境** J2ME由配置(Configurations)和框架(Profiles)组成。配置定义了基础的Java虚拟机(JVM)和核心库,而框架则添加了...

Global site tag (gtag.js) - Google Analytics