仓酷云
标题:
JAVA网站制作之J2ME编程最好理论之天真的RMS使用
[打印本页]
作者:
简单生活
时间:
2015-1-18 11:11
标题:
JAVA网站制作之J2ME编程最好理论之天真的RMS使用
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)编程 MIDP使用程序的尺度耐久化计划就是利用RMS。RMS相似于一个小型数据库,RecordStore相称于数据库的表,每一个“表”由多少纪录(Record)组成,一笔记录就是一个用int暗示的纪录号RecordID和用byte[]暗示的内容。纪录号能够看做是“主键”,byte[]数组存储内容。
RMS供应的纪录操纵能够完成依据ID间接取得纪录,大概列举出一个表中的一切纪录。
列举纪录长短常低效的,由于只能对照byte[]数据来断定该纪录是不是是所需的纪录。经由过程ID取得纪录是高效而便利的,相似于SQL语句“SELECTbyteArrayDataFROMrecordStoreNameWHERERecordID=?”。但是,一般使用程序很难晓得某笔记录的ID号,而RMS纪录的“主键”又仅限于int范例,没法利用其他范例如String作为“主键”来查找。因而,关于必要存取分歧范例对象的使用程序而言,就必要一个天真的RMS操纵框架。
我们的基础假想是,假如能利用String作为“主键”来查找纪录,就可以十分便利地取得所需的内容。比方,使用程序设置能够经由过程"sys.settings"取得byte[]数组,并顺次读掏出设置,用户登录信息能够经由过程"user.info"取得byte[]数组,再分化出用户名和口令。
因而,我们完成一个StorageHandler类,供应独一的RMS会见接口,使得其他类完整不用思索底层的RMS操纵,只需供应能标识本身的一个String便可。
假如我们能完成一品种似于数据库索引的查找表,就可以依据String关头字查找某笔记录。因而,我们利用一个名为"index"的RecordStore来存储一切的索引,每条索引都指向某一条详细纪录的ID,计划一个IndexEntry暗示一条索引:
classIndexEntry{
privateintselfId;//IndexEntry的ID
privateintrecordId;//对应纪录的ID
privateStringkey;//会见纪录的Key
}
依据索引查找,分3步举行:
1.在名为"index"的RecordStore中依据String查找对应的IndexEntry。
2.掏出IndexEntry,取得纪录ID号。
3.依据ID号取得另外一个RecordStore的纪录,然后就能够读取、更新和删除该纪录。
以下图所示:
登录/注册后可看大图
200777115628259.jpg
(16.22 KB, 下载次数: 12)
下载附件
保存到相册
JAVA网站制作之J2ME编程最好理论之天真的RMS使用
2015-1-18 11:11 上传
因为IndexEntry保留的数据很少,为了加速查找速率,能够在使用程序启动时,把一切的IndexEntry读进一个Vector,在前面的操纵中更新这个Vector并与RecordStore坚持同步。
为了处置分歧范例的数据,一切可经由过程StorageHandler存取的类都必需完成一个Storable接口:
publicinterfaceStorable{
StringgetKey();
voidgetData(DataOutputStreamoutput)throwsIOException;
voidsetData(DataInputStreaminput)throwsIOException;
}
后面已提到,在MIDP使用程序中,序列化一个类的最好办法是利用DataInputStream和DataOutputStream。因而,必要耐久化的类能够经由过程getData()和setData()办法十分便利地存取。假定使用程序的类UserInfo保留了用户的登录名、口令和是不是主动登录的信息:
publicclassUserInfo{
Stringusername;
Stringpassword;
booleanautoLogin;
}
为了能将UserInfo存进RMS,必要完成Storable接口:
classUserInfoimplementsStorable{
Stringusername;
Stringpassword;
booleanautoLogin;
publicStringgetKey(){return"user.info";}//供应一个独一标识符便可
publicvoidgetData(DataOutputStreamoutput)throwsIOException{
output.writeUTF(username);
output.writeUTF(password);
output.writeBoolean(autoLogin);
}
publicvoidsetData(DataInputStreaminput)throwsIOException{
username=input.readUTF();
password=input.readUTF();
autoLogin=input.readBoolean();
}
//gettershere...
}
要保留UserInfo,只需挪用StorageHandler的保留办法:
StorageHandler.storeOrUpdate(userinfo);
要读取UserInfo,挪用StorageHandler的读取办法:
UserInfouserinfo=newUserInfo();
StorageHandler.load(userinfo);
如许,必要读取或保留数据的类完整不用触及底层的RMS操纵,年夜年夜简化了使用程序的计划,加强了源代码的可复用性与可保护性。
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。
作者:
兰色精灵
时间:
2015-1-20 16:42
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
冷月葬花魂
时间:
2015-1-20 19:39
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者:
柔情似水
时间:
2015-1-24 13:46
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
再现理想
时间:
2015-1-30 22:49
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者:
小妖女
时间:
2015-2-6 16:29
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者:
飘飘悠悠
时间:
2015-2-11 03:53
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
蒙在股里
时间:
2015-3-1 20:40
是一种语言,用以产生「小应用程序(Applet(s))
作者:
精灵巫婆
时间:
2015-3-10 23:18
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
谁可相欹
时间:
2015-3-17 12:45
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者:
若天明
时间:
2015-3-24 10:10
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2