《精编》Android数据存储培训课程

上传人:tang****xu3 文档编号:133244281 上传时间:2020-05-25 格式:PPT 页数:61 大小:290KB
返回 下载 相关 举报
《精编》Android数据存储培训课程_第1页
第1页 / 共61页
《精编》Android数据存储培训课程_第2页
第2页 / 共61页
《精编》Android数据存储培训课程_第3页
第3页 / 共61页
《精编》Android数据存储培训课程_第4页
第4页 / 共61页
《精编》Android数据存储培训课程_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《《精编》Android数据存储培训课程》由会员分享,可在线阅读,更多相关《《精编》Android数据存储培训课程(61页珍藏版)》请在金锄头文库上搜索。

1、Android数据存储 计算机系康钦马 Android数据存储概述 Android数据存储主要是通过SharedPreferences 本地文件和SQLite数据库 Android是基于Linux系统 每个用户有独立的进程 这些进程之间是不能互相访问的 如果有需要在各个用户之间共享数据 我们需要使用CotentProivder实现 另外 ContentProvider可以提供一个统一的接口使上层调用者不用关心数据存储的细节问题 SharedPreferences SharedPreferences用于简单的数据存储 是通过 name value对 的机制存储数据 可以存储一些基本的数据类型包括

2、 Boolean string float long和integer类型 数据是存储在XML文件中的 案例 在文本框中输入文字 点击保存按钮 保存文字到SharedPreferences中 为了查看数据是否成功保存并持久化 可以关闭模拟器 重新启动程序后 点击 获取数据 按钮 保存数据 save setOnClickListener newView OnClickListener OverridepublicvoidonClick Viewv 存储数据到XML记录文件SharedPreferencesmySharedPreferences getSharedPreferences MYPREF

3、S MODE PRIVATE 获得修改所用的SharedPreferences对象SharedPreferences Editoreditor mySharedPreferences edit editor putString TEXT KEY text getText toString 确定修改mit getSharedPreferences方法 MYPREFS参数是我们自己定义的SharedPreferences文件名 这个文件名是自定义 Android按照这个名字将数据保存成XML文件 MODE PRIVATE是数据操作模式 该模式只能是被具有相同的用户ID的应用程序访问 此外还有 MO

4、DE WORLD READABLE 可以被其它所有的应用程序读取数据 MODE WORLD WRITEABLE 可以被其它所有的应用程序写入数据 SharedPreferences Editor 当我们是SharedPreferences修改数据时候可以使用SharedPreferences Editor对象 SharedPreferences Editoreditor mySharedPreferences edit mit 提交修改后的数据 获得数据 find setOnClickListener newView OnClickListener OverridepublicvoidonCl

5、ick Viewv 存储数据到XML记录文件SharedPreferencesmySharedPreferences getSharedPreferences MYPREFS MODE PRIVATE StringstringPreference stringPreference mySharedPreferences getString TEXT KEY text setText stringPreference SQLite数据库 SQLite是一个开源的嵌入式关系数据库 它在2000年由D RichardHipp发布 它的减少应用程序管理数据的开销 SQLite可移植性好 很容易使用 很

6、小 高效而且可靠 SQLite嵌入到使用它的应用程序中 它们共用相同的进程空间 而不是单独的一个进程 从外部看 它并不像一个RDBMS 但在进程内部 它却是完整的 自包含的数据库引擎 嵌入式数据库的一大好处就是在你的程序内部不需要网络配置 也不需要管理 因为客户端和服务器在同一进程空间运行 SQLite的数据库权限只依赖于文件系统 没有用户帐户的概念 SQLite有数据库级锁定 没有网络服务器 它需要的内存 其它开销很小 适合用于嵌入式设备 你需要做的仅仅是把它正确的编译到你的程序 SQLite数据类型 SQLite是无类型的 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中

7、无论这列声明的数据类型是什么 对于SQLite来说对字段不指定类型是完全有效的 如 CreateTableex1 a b c SQLite允许忽略数据类型 但是仍然建议在你的CreateTable语句中指定数据类型 因为数据类型对于你和其他的程序员交流 或者你准备换掉你的数据库引擎 SQLite支持常见的数据类型 如 CREATETABLEex2 aVARCHAR 10 bNVARCHAR 15 cTEXT dINTEGER eFLOAT fBOOLEAN gCLOB hBLOB iTIMESTAMP jNUMERIC 10 5 kVARYINGCHARACTER 24 lNATIONALVA

8、RYINGCHARACTER 16 创建表 CREATETABLE语句CREATETABLETable Name column namedatatype size column namedatatype size 关系数据类型 字符串数据数字数据时间数据大型对象 字符串数据 固定长度固定长度的字段总是占据等量的内存空间 不管实际上在它们中间存放的数据量有多少 可变长度而可变长度的字符串只占据它们的内容所消耗的内存量 不管它们的最大尺寸是多少 字符串数据示例 CREATETABLEStudios nameCHAR 20 cityVARCHAR 50 stateCHAR 2 revenueFLOA

9、T 固定长度 可变长度 数字数据 多数数据库都提供至少2种数字数据类型 一种用于整数 另一种用于浮点数 另外还有一些数据库提供更加独特的数字类型 整数浮点数 数字数据示例 CREATETABLEStudios nameCHAR 20 cityVARCHAR 50 stateCHAR 2 revenueFLOAT 数字 指定键 主键每个表中只能指定一个主键PRIMARYKEY 主键示例 还可以在定义列的时候同时指定候选键和主键 以此代替在CREATETABLE语句结尾处单独的子句中创建键 CREATETABLEStudios studio idINTEGERPRIMARYKEY nameCHAR

10、 20 UNIQUE cityVARCHAR 50 stateCHAR 2 指定studio id为主键 INSERT语句 语法INSERTINTOtable dame column list VALUES value list table name是表名称 记录将要添加到该表中 INSERT语句示例1 Studios表的INSERT语句 INSERTINTOStudiosVALUES 1 Giant LosAngeles CA INSERT语句示例2 Studios表中的列分别是 studio id name city和state 因为这些值都按照上述顺序包括在VALUES子句中 所以INS

11、ERT语句可以正常工作 INSERTINTOStudios city state name studio id VALUES Burbank CA MPM 2 INSERT语句小结 在多数数据库中 表中的列都按照它们创建的顺序出现 当使用CREATETABLE创建新的表时 列的顺序将保持为它们在原始语句中指定的顺序 UPDATE语句 UPDATE语句用来对表中现有的行作改动 UPDATE语句的结构如下 UPDATEtableSETcolumn value WHEREcondition UPDATE语句 UPDATE语句用来对表中现有的行作改动 UPDATE语句的结构如下 UPDATEtable

12、SETcolumn value WHEREcondition UPDATE语句 UPDATE语句有3个部分 第一 必须指定要更新哪一个表 该语句的第二部分是SET子句 应当指定其中要更新的列和要插入的值 最后 WHERE子句可以用来指定表中哪些行将要更新 UPDATE语句示例1 更改某工作室的城市和州的UPDATE语句 UPDATEStudiosSETcity NewYork state NY WHEREstudio id 11rowupdated UPDATE语句示例1 可以看到 在SET子句中 将city和state字段都进行了更改 WHERE子句表明只有studioID为1的行才能被更新

13、 在编写只对表中某一行产生影响的UPDATE语句时 在WHERE子句中使用主关键字来确保只有一行受到改变的影响往往是一个好办法 如果忽略UPDATE语句中的WHERE子句 那么在更新表中的所有行都将受到该语句的影响 UPDATE语句示例2 用UPDATE来更改表中所有行的语句 UPDATEStudiosSETstate AK 2rowsupdated SELECT FROMStudiosSTUDIO IDNAMECITYSTATE1GiantNewYorkAK2MPMBurbankAK DELETE语句 DELETE语句也可以用来将记录从表中删除 DEILETE语句的结构非常简单 DELETE

14、FROMtable WHEREcondition DELETE语句 可选的WHERE子句可用来限制DELETE语句删除的行数 如果忽略WHERE子句 表中所有的行都会被删除 通过使用WHERE子句 可以指定要想删除每行所必须满足的条件 DELETE语句示例 删除Studios表中所有的行 DELETEFROMStudiosWHEREstate AK 2rowsdeleted Android访问SQLite 在Android访问SQLite数据库常用有两种方式 扩展SQLiteOpenHelper类提供数据访问接口 扩展ContentProvider类来提供数据访问接口 SQLiteOpenHe

15、lper SQLiteOpenHelper类对于数据库访问能够实现很好的封装 如果我们在打开之前创建或更新数据库 可以通过实现SQLiteOpenHelper类实现这一需求 在实现类中覆盖onCreate和onUpgrade方法 以及对应的构造方法 有关数据库处理的代码片段 DBHelper Context context super context DATABASE NAME null DATABASE VERSION context context OverridepublicvoidonCreate SQLiteDatabasedb try db execSQL CREATETABLEt

16、 user IDINTEGERPRIMARYKEYautoincrement NAMETEXT catch Exceptione OverridepublicvoidonUpgrade SQLiteDatabasedb intoldVersion intnewVersion db execSQL DROPTABLEIFEXISTSt user Createanewone onCreate db 有关UI的代码片段 protectedvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState this setContentView R layout main 初始化UIbtnAdd Button findViewById R id btnAdd btnViewAll Button findViewById R id btnViewAll viewAll TextView findViewById R id viewAll inputTxt EditText findViewById R id txtInp

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号