- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第七章数据存储与访问哈尔滨工程大学王向辉
本章学习目标:掌握TinyDB数据存储与访问方法掌握TinyDB数据更新和删除方法
7.1TinyDB控件的基本功能在开发应用程序过程中,经常会有一些数据需要长时间的存储起来,以便在需要时可以立即获取到这些数据。为了完成这一功能,AppInventor提供了TinyDB控件来进行数据的存储和访问。
7.1TinyDB控件的基本功能TinyDB控件属于非可视化控件,由于其广泛的适用性和简单的操作方法,在应用程序中使用的非常广泛。由于TinyDB控件是功能性的非可视化控件,因此这个控件没有任何可编辑属性和触发事件,仅支持数据存储(StoreValue)和数据读取(GetValue)两个方法。
7.1TinyDB控件的基本功能TinyDB,是一种基于NVP(Name/ValuePair,标签/值对)的数据存储方式,用户无需了解数据的存储细节,就可以根据标签在数据库中保存、读取数据这里所说的NVP是使用“标签”进行数据存储的模式,每个数据对应一个标签。在从数据库中获取这个数据时,只要提供标签,就能在数据库中找到需要的数据Lucy。
7.1TinyDB控件的基本功能StoreValue方法的功能是将数据保存到数据库中参数tag是标签参数valueToStore是被存储的数据,被保存的数据既可以是字符串,也可以是列表
7.1TinyDB控件的基本功能GetValue方法的功能是根据标签获取数据库中的数据参数tag是标签根据标签的内容在数据库中进行搜索,如果知道匹配的标签,可以返回标签对应的数据如果没有找到匹配的标签,则返回一个空的字符串
7.2TinyDB控件的进阶知识上一节中介绍了TinyDB控件的数据存储和数据读取功能,本节将对数据的更新和删除方法,以及使用TinyDB控件的一些注意事项进行说明
7.2TinyDB控件的进阶知识数据的查询与删除使用GetValue方法时,如果没有找到匹配的标签,则返回一个空的字符串,因此要检验某个标签下是否有存储数据,只要检测返回值是否为空即可。进一步说,TinyDB控件没有独立的更新和删除数据的方法。如果数据存储中使用的标签在数据库中已经存在,则这次数据存储就可也视为“数据更新”,原有数据会被新数据所替换。因此,使用数据存储方法StoreValue,将参数valueToStore赋上空值,这样一来原有数据就将被删除。
7.2TinyDB控件的进阶知识在一个应用程序中,多个TinyDB控件是共享存储空间的。即使使用多个TinyDB控件,标签仍然不能重复,否则会出现数据覆盖的情况,因此不建议在应用程序中使用多个TinyDB控件。例如,分别向数据库TinyDB1和TinyDB2存储一条数据,标签都为“0001”,先向TinyDB1存储数据“Tom”,再向TinyDB2存储数据“Lily”,此时TinyDB1和TinyDB2中标签“0001”的数据都是“Lily”此外,不同应用程序的数据库是各自独立的,不能通过TinyDB控件在不同应用程序之间传送数据。
7.2TinyDB控件的进阶知识对于少量的数据,开发人员一般会采用自定义标签。使用自定义标签的好处显而易见,首先自定义标签比变量标签更为灵活,而且便于搜索数据;其次,自定义标签在应用的开发过程中减少了开发工作量,简化了逻辑结构;最后,自定义标签也更适合一组多项的数据存储,如存储学生信息时,可能需要同时存储学生的姓名、学号、班级和专业等多项不同的信息,在这种情况下自定义标签就可以将同一组的条目关联起来。当然,自定义标签也有受到限制的方面,最大的限制就是标签可能会出现重叠。例如在录入学生信息的时候,重名的情况就可能导致数据库的数据出现覆盖或者误删除的情况。这个问题一方面可以通过在逻辑中添加限定来解决,如在存入数据之前先判断目标标签下的内容是否为空,如果不为空则停止数据存储并给出提示;另一种方法是在数据设计时,选择不会或不易出现重复的项目作为标签,例如学生的“学号”就比使用“姓名”作为标签更为恰当,因为学号和学生的条目一一对应,而且不会出现重复。
7.2TinyDB控件的进阶知识TinyDB控件无法对数据库中的内容进行检索。仍然以学生档案的例子来说,当以学号作为标签的存储时,可以通过学号获取学生信息,但是不能以姓名或者班级等内容进行检索。
7.2TinyDB控件的进阶知识TinyDB控件中的数据只有当用户下载并安装应用程序之后才能有效。对于开发测试人员来讲,如果在测试过程中重新启动AppInventor应用程序或者中断调试链接,数据库的内容也被清空,因为这一过程等同于将应用从手机当中移除之后重新载入。
文档评论(0)