欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第06章数据存储优秀课件.ppt

    • 资源ID:53155343       资源大小:1.23MB        全文页数:20页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第06章数据存储优秀课件.ppt

    第06章数据存储第1页,本讲稿共20页目标n理解RMS的体系结构n熟悉记录存储的管理方法n掌握记录的增、删、改等基本操作第2页,本讲稿共20页记录管理系统记录管理系统概述记录管理系统概述几乎所有的游戏都需要在运行过程中保存信息,类似:玩家输入的数据,例如玩家的姓名;游戏的进程数据,例如关数、分数等;经常需要使用的工具,例如常用的URL链接等。在MIDP规范中,提供了记录管理系统(RecordManagementSystem,RMS),这个记录管理系统就是一个小型简单的数据库管理系统(DatabaseManagementSystem),除了能用于管理系统储存资料之外,也可以用于存储对象的状态信息。记录仓库的根本作用就是提供给开发人员以存储信息、提取信息的功能。MIDP规范要求所有的实现提供持久存储机制,以保证当设备关闭的时候,相关的信息能够进行保存。实际上,这种存储机制在不同的设备上并不一致,但是对于MIDlet来讲,其应用接口是一致的,这使得MIDlet不需要考虑在设备之间的差异性。第3页,本讲稿共20页记录管理系统是一个小型的数据库,存在很多记录仓库(RecordStore)。在记录仓库中的存在一条一条的资料,也称为记录。它们之间的关系:记录管理系统记录管理系统概述记录管理系统概述第4页,本讲稿共20页所有和记录管理系统相关的类别都属于javax.microedition.rms,其中共包含以下类:1.一个类:RecordStore2.四个接口:RecordComparator,RecordFilter,RecordListener,RecordEnumeration3.五种异常:InvalidRecordException,RecordStoreException,RecordStoreFullException,RecordStoreNotFoundException,RecordStoreNotOpenException 记录管理系统记录管理系统概述记录管理系统概述第5页,本讲稿共20页记录仓库管理记录仓库管理 记录仓库(RecordStore)是记录的集合,在每一个MIDletSuite之中,每一个资料仓库都有它独一无二的每一个资料仓库都有它独一无二的名字,长度不能超过名字,长度不能超过32个个Unicode 字符,并且区分大小写字符,并且区分大小写。同一个MIDletSuite之中的MIDlet都可以共享这些RecordStore,而不同MIDletSuite之间无法共享记录仓库。MIDlet不能够访问诸如地址簿之类的数据,非Java的程序也不能够访问MIDlet的数据。记录管理系统第6页,本讲稿共20页打开记录仓库使用RecordStore类的openRecordStore()方法:openRecordStore(Stringname,booleancreate)第一个参数是RecordStore的名称,第二个参数如果传入的是true,代表如果我们所要开启的资料仓库不存在,请系统帮我们建立一个新的RecordStore;反之,如果传入的是false,代表如果我们所要开启的RecordStore不存在,就抛出RecordStoreNotFoundException异常。openRecordStore(StringrecordStoreName,booleancreateIfNecessary,intauthmode,booleanwritable)前两个参数同上,第三个参数是创建方式(PRIVATE/ANY)是否可以被其他套件访问。第四个参数,其他套件是否可以进行写操作。记录管理系统记录仓库管理记录仓库管理 第7页,本讲稿共20页关闭记录仓库当MIDlet不再使用RecordStore的时候,应当使用closeRecordStore()函数关闭RecordStore。如果有多个MIDlet打开了同一个RecordStore,这个RecordStore直到所有的MIDlet执行了关闭操作才会被真正关闭。/两次打开同一个RecordStoreRecordStorescores=RecordStore.openRecordStore(Scores,true);RecordStorescores2=RecordStore.openRecordStore(Scores,true);/关闭RecordStore,第一次并不会真正关闭scores.closeRecordStore();/真正关闭RecordStorescores2.closeRecordStore();记录管理系统记录仓库管理记录仓库管理 第8页,本讲稿共20页删除记录仓库可以使用静态函数deleteRecordStore()删除RecordStore对象:publicstaticvoiddeleteRecordStore(Stringname)如果该RecordStore还在被某个MIDlet使用,那么删除的操作会引起RecordStoreException异常。如果该名字的RecordStore并不存在,该操作会引起RecordStoreNotFoundException异常。只有被关闭的RecordStore对象才能够被删除,假如对应的MIDletSuite进行了卸载,那么对应的RecordStore会自动被删除。记录管理系统记录仓库管理记录仓库管理 第9页,本讲稿共20页列出记录仓库MIDlet可以使用listRecordStores函数获得该MIDletSuite所拥有的所以RecordStore的名称publicstaticStringlistRecordStores()如果MIDletSuite没有RecordStore存在,则返回一个空的数组。思考:写一个方法,来判断一个指定名字的RecordStore是否存在记录管理系统记录仓库管理记录仓库管理 第10页,本讲稿共20页使用记录仓库的方法已经打开的RecordStore的相关方法:publicStringgetName()返回RecordStore的名字getLastModified()返回上次修改的时间。从1970.1.1零时至此的微秒值。与SystemcurrentTimeMillis()返回值相同。publicintgetVersion()返回一个整数值,表示该数据被操作的次数,例如增加,删除,修改等操作都会被记录publicintgetSize()返回RecordStore占用的字节数目publicintgetSizeAvailable()返回该RecordStore允许增长的最大占用空间,该空间包括管理数据自身需要的空间。记录管理系统记录仓库管理记录仓库管理 第11页,本讲稿共20页记录的基本操作记录的基本操作IDRecordStore包含多个record,每一个record都有一个独一无二的ID值。该ID值不属于record自身,而是在record创建时候进行分配。分配ID的有以下的原则:分配给第一个第一个record的的ID是是1,新记录分配的ID值比原有记录ID值大记录管理系统添加记录添加记录(addRecord)intaddRecord(bytedata,intoffset,intnumBytes)将bytes数组存放到RecordStore之中,并传回其RecordID。记录的数据从data字节流中获得,第一个字节是dataoffset,最后一个字节是dataoffset+size-1,可以使用DataOutputStream以及ByteArrayOutputStream共同将对象值转变称为正确的字节流。第12页,本讲稿共20页以下是一个表示游戏中用户分数的对象,现在需要将该对象作为一个record进行保存。对象定义如下:publicclassScoreRecordpublicStringplayerName;/名称publicintscore;/分数记录管理系统记录的基本操作记录的基本操作第13页,本讲稿共20页以下是转换的过程:/创建对象ScoreRecordrecord=newScoreRecord();record.playerName=TopNotch;record.score=12345678;/创建输出流ByteArrayOutputStreambaos=newByteArrayOutputStream();DataOutputStreamos=newDataOutputStream(baos);/将对象值保存到输出流中os.writeUTF(record.playerName);os.writeInt(record.score);os.close();记录管理系统记录的基本操作记录的基本操作第14页,本讲稿共20页增加记录/获得字节流bytedata=baos.toByteArray();/将记录写到recordstore中intid=recordStore.addRecord(data,0,data.length);记录管理系统记录的基本操作记录的基本操作第15页,本讲稿共20页 获取记录(获取记录(getRecord)bytegetRecord(intrecordid)取出特定RecordID的那笔数据。同样这也是针对byte数组的操作,因此也需要利用DataInputStream以及ByteArrayInputStream简化从Java类型到字节集合的转换工作。intgetRecord(intrecordid,bytedata,intoffset)表示将取出的值置于dataoffset开始的位置。记录的基本操作记录的基本操作记录管理系统bytedata=recordStore.getRecord(recordId);DataInputStreamis=newDataInputStream(newByteArrayInputStream(data);ScoreRecordrecord=newScoreRecord();record.playerName=is.readUTF();record.score=is.readInt();is.close();第16页,本讲稿共20页getRecordbytegetRecord(intrecordid)取出特定RecordID的那笔数据。同样这也是针对byte数组的操作,因此也需要利用DataInputStream以及ByteArrayInputStream简化从Java类型到字节集合的转换工作。记录管理系统记录的基本操作记录的基本操作第17页,本讲稿共20页修改记录(修改记录(setRecordsetRecord)public void setRecord(int recordId,byte data,int offset,int size);利用该函数可以修改记录值。修改记录的过程其实相当于读写两个步骤的结合。记录管理系统/修改记录record.score+=10;ByteArrayOutputStreambaos=newByteArrayOutputStream();DataOutputStreamos=newDataOutputStream(baos);os.writeUTF(record.playerName);os.writeInt(record.score);os.close();bytedata=baos.toByteArray();/将记录写入recordstore,覆盖原有记录recordStore.setRecord(recordId,data,0,data.length);记录的基本操作记录的基本操作第18页,本讲稿共20页删除记录(删除记录(deleteRecorddeleteRecord)voiddeleteRecord(intrecordid)删除特定RecordID的记录。当指定ID记录被删除,其对应的ID号不会被重用。记录管理系统记录的基本操作记录的基本操作第19页,本讲稿共20页nRecordStore的创建,查询,删除n记录的增删改n记录的排序总结第20页,本讲稿共20页

    注意事项

    本文(第06章数据存储优秀课件.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开