欢迎来到天天文库
浏览记录
ID:52942065
大小:354.75 KB
页数:13页
时间:2020-04-03
《《数据存储与访问》PPT课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章数据存储与访问哈尔滨工程大学王向辉本章学习目标:掌握TinyDB数据存储与访问方法掌握TinyDB数据更新和删除方法7.1TinyDB控件的基本功能为了完成这一功能,AppInventor提供了TinyDB控件来进行数据的存储和访问。在开发应用程序过程中,经常会有一些数据需要长时间的存储起来,以便在需要时可以立即获取到这些数据。7.1TinyDB控件的基本功能TinyDB控件属于非可视化控件,由于其广泛的适用性和简单的操作方法,在应用程序中使用的非常广泛。由于TinyDB控件是功能性的非可视化控件,因此这个控件没有任何可编辑属性和触发事件,仅支持数据存储(StoreValue)和数据读取
2、(GetValue)两个方法。7.1TinyDB控件的基本功能TinyDB,是一种基于NVP(Name/ValuePair,标签/值对)的数据存储方式,用户无需了解数据的存储细节,就可以根据标签在数据库中保存、读取数据这里所说的NVP是使用“标签”进行数据存储的模式,每个数据对应一个标签。在从数据库中获取这个数据时,只要提供标签,就能在数据库中找到需要的数据Lucy。7.1TinyDB控件的基本功能StoreValue方法的功能是将数据保存到数据库中参数tag是标签参数valueToStore是被存储的数据,被保存的数据既可以是字符串,也可以是列表7.1TinyDB控件的基本功能GetValu
3、e方法的功能是根据标签获取数据库中的数据参数tag是标签根据标签的内容在数据库中进行搜索,如果知道匹配的标签,可以返回标签对应的数据如果没有找到匹配的标签,则返回一个空的字符串7.2TinyDB控件的进阶知识上一节中介绍了TinyDB控件的数据存储和数据读取功能,本节将对数据的更新和删除方法,以及使用TinyDB控件的一些注意事项进行说明7.2TinyDB控件的进阶知识数据的查询与删除使用GetValue方法时,如果没有找到匹配的标签,则返回一个空的字符串,因此要检验某个标签下是否有存储数据,只要检测返回值是否为空即可。进一步说,TinyDB控件没有独立的更新和删除数据的方法。如果数据存储中使
4、用的标签在数据库中已经存在,则这次数据存储就可也视为“数据更新”,原有数据会被新数据所替换。因此,使用数据存储方法StoreValue,将参数valueToStore赋上空值,这样一来原有数据就将被删除。在一个应用程序中,多个TinyDB控件是共享存储空间的。即使使用多个TinyDB控件,标签仍然不能重复,否则会出现数据覆盖的情况,因此不建议在应用程序中使用多个TinyDB控件。例如,分别向数据库TinyDB1和TinyDB2存储一条数据,标签都为“0001”,先向TinyDB1存储数据“Tom”,再向TinyDB2存储数据“Lily”,此时TinyDB1和TinyDB2中标签“0001”的数
5、据都是“Lily”7.2TinyDB控件的进阶知识此外,不同应用程序的数据库是各自独立的,不能通过TinyDB控件在不同应用程序之间传送数据。对于少量的数据,开发人员一般会采用自定义标签。使用自定义标签的好处显而易见,首先自定义标签比变量标签更为灵活,而且便于搜索数据;其次,自定义标签在应用的开发过程中减少了开发工作量,简化了逻辑结构;最后,自定义标签也更适合一组多项的数据存储,如存储学生信息时,可能需要同时存储学生的姓名、学号、班级和专业等多项不同的信息,在这种情况下自定义标签就可以将同一组的条目关联起来。当然,自定义标签也有受到限制的方面,最大的限制就是标签可能会出现重叠。例如在录入学生信
6、息的时候,重名的情况就可能导致数据库的数据出现覆盖或者误删除的情况。这个问题一方面可以通过在逻辑中添加限定来解决,如在存入数据之前先判断目标标签下的内容是否为空,如果不为空则停止数据存储并给出提示;另一种方法是在数据设计时,选择不会或不易出现重复的项目作为标签,例如学生的“学号”就比使用“姓名”作为标签更为恰当,因为学号和学生的条目一一对应,而且不会出现重复。7.2TinyDB控件的进阶知识7.2TinyDB控件的进阶知识TinyDB控件无法对数据库中的内容进行检索。仍然以学生档案的例子来说,当以学号作为标签的存储时,可以通过学号获取学生信息,但是不能以姓名或者班级等内容进行检索。7.2Tin
7、yDB控件的进阶知识TinyDB控件中的数据只有当用户下载并安装应用程序之后才能有效。对于开发测试人员来讲,如果在测试过程中重新启动AppInventor应用程序或者中断调试链接,数据库的内容也被清空,因为这一过程等同于将应用从手机当中移除之后重新载入。
此文档下载收益归作者所有