android数据存储培训课程.ppt

上传人:F****n 文档编号:97057476 上传时间:2019-09-01 格式:PPT 页数:61 大小:373.50KB
返回 下载 相关 举报
android数据存储培训课程.ppt_第1页
第1页 / 共61页
android数据存储培训课程.ppt_第2页
第2页 / 共61页
android数据存储培训课程.ppt_第3页
第3页 / 共61页
android数据存储培训课程.ppt_第4页
第4页 / 共61页
android数据存储培训课程.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

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

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

2、数据类型包括:Boolean,string,float,long和integer类型。 数据是存储在XML文件中的。,案例,在文本框中输入文字,点击保存按钮,保存文字到SharedPreferences中。为了查看数据是否成功保存并持久化,可以关闭模拟器,重新启动程序后,点击“获取数据”按钮。,保存数据,save.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) / 存储数据到XML记录文件 SharedPreferences mySharedPreferences = getS

3、haredPreferences( MYPREFS, MODE_PRIVATE); / 获得修改所用的SharedPreferences对象 SharedPreferences.Editor editor = mySharedPreferences.edit(); editor.putString(TEXT_KEY, text.getText().toString(); / 确定修改 mit(); );,getSharedPreferences方法,MYPREFS参数是我们自己定义的SharedPreferences文件名,这个文件名是自定义,Android按照这个名字将数据保存成XML文件。

4、 MODE_PRIVATE是数据操作模式,该模式只能是被具有相同的用户ID的应用程序访问,此外还有: MODE_WORLD_READABLE,可以被其它所有的应用程序读取数据。 MODE_WORLD_WRITEABLE,可以被其它所有的应用程序写入数据。,SharedPreferences.Editor,当我们是SharedPreferences修改数据时候可以使用SharedPreferences.Editor对象。 SharedPreferences.Editor editor = mySharedPreferences.edit(); mit()提交修改后的数据。,获得数据,find.s

5、etOnClickListener(new View.OnClickListener() Override public void onClick(View v) / 存储数据到XML记录文件 SharedPreferences mySharedPreferences = getSharedPreferences( MYPREFS, MODE_PRIVATE); String stringPreference; stringPreference = mySharedPreferences.getString(TEXT_KEY, “); text.setText(stringPreference

6、); );,SQLite数据库,SQLite是一个开源的嵌入式关系数据库,它在2000年由D. Richard Hipp发布,它的减少应用程序管理数据的开销,SQLite可移植性好,很容易使用,很小,高效而且可靠。 SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。 嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器

7、。它需要的内存,其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确的编译到你的程序。,SQLite数据类型,SQLite是无类型的,这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么,对于SQLite来说对字段不指定类型是完全有效的,如: Create Table ex1(a, b, c);,SQLite允许忽略数据类型,但是仍然建议在你的Create Table语句中指定数据类型, 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎。 SQLite支持常见的数据类型, 如:,CREATE TABLE ex2 ( a VA

8、RCHAR(10), b NVARCHAR(15), c TEXT, d INTEGER, e FLOAT, f BOOLEAN, g CLOB, h BLOB, i TIMESTAMP, j NUMERIC(10,5) k VARYING CHARACTER (24), l NATIONAL VARYING CHARACTER(16) );,创建表,CREATE TABLE语句 CREATE TABLE Table_Name (column_name datatype(size), column_name datatype(size), ),关系数据类型,字符串数据 数字数据 时间数据 大型

9、对象,字符串数据,固定长度 固定长度的字段总是占据等量的内存空间,不管实际上在它们中间存放的数据量有多少。 可变长度 而可变长度的字符串只占据它们的内容所消耗的内存量,不管它们的最大尺寸是多少。,字符串数据示例,CREATE TABLE Studios (name CHAR(20), city VARCHAR(50), state CHAR(2), revenue FLOAT),固定长度,可变长度,数字数据,多数数据库都提供至少2种数字数据类型:一种用于整数,另一种用于浮点数。另外还有一些数据库提供更加独特的数字类型。 整数 浮点数,数字数据示例,CREATE TABLE Studios (n

10、ame CHAR(20), city VARCHAR(50), state CHAR(2), revenue FLOAT),数字,指定键,主键 每个表中只能指定一个主键 PRIMARY KEY,主键示例,还可以在定义列的时候同时指定候选键和主键,以此代替在CREATE TABLE语句结尾处单独的子句中创建键。,CREATE TABLE Studios (studio_id INTEGER PRIMARY KEY, name CHAR(20) UNIQUE, city VARCHAR(50), state CHAR(2),指定studio_id为主键,INSERT语句,语法 INSERT INT

11、O table_dame (column_list) VALUES (value_list) table_name是表名称,记录将要添加到该表中。,INSERT语句 示例1,Studios表的INSERT语句,INSERT INTO Studios VALUES(1,Giant,LosAngeles,CA),INSERT语句 示例2,Studios表中的列分别是:studio_id、name、city和state。因为这些值都按照上述顺序包括在VALUES子句中,所以INSERT语句可以正常工作。,INSERT INTO Studios (city, state, name, studio_i

12、d) VALUES(Burbank, CA, MPM,2),INSERT语句 小结,在多数数据库中,表中的列都按照它们创建的顺序出现。当使用CREATE TABLE创建新的表时,列的顺序将保持为它们在原始语句中指定的顺序。,UPDATE语句,UPDATE语句用来对表中现有的行作改动。UPDATE语句的结构如下: UPDATE table SET column = value,. WHERE condition,UPDATE语句,UPDATE语句用来对表中现有的行作改动。UPDATE语句的结构如下: UPDATE table SET column = value,. WHERE conditio

13、n,UPDATE语句,UPDATE语句有3个部分。第一,必须指定要更新哪一个表。该语句的第二部分是SET子句,应当指定其中要更新的列和要插入的值。最后,WHERE子句可以用来指定表中哪些行将要更新。,UPDATE语句 示例1,更改某工作室的城市和州的UPDATE语句,UPDATE Studios SET city = New York,state = NY WHERE studio_id = 1 1 row updated.,UPDATE语句 示例1,可以看到,在SET子句中,将city和state字段都进行了更改。WHERE子句表明只有studioID为1的行才能被更新。在编写只对表中某一行

14、产生影响的UPDATE语句时,在WHERE子句中使用主关键字来确保只有一行受到改变的影响往往是一个好办法。如果忽略UPDATE语句中的WHERE子句,那么在更新表中的所有行都将受到该语句的影响。,UPDATE语句 示例2,用UPDATE来更改表中所有行的语句,UPDATE Studios SET state = AK 2 rows updated.,SELECT * FROM Studios STUDIO_ID NAME CITY STATE 1 Giant New York AK 2 MPM Burbank AK,DELETE语句,DELETE语句也可以用来将记录从表中删除。DEILETE语

15、句的结构非常简单: DELETE FROM table WHERE condition,DELETE语句,可选的WHERE子句可用来限制DELETE语句删除的行数。如果忽略WHERE子句,表中所有的行都会被删除。通过使用WHERE子句,可以指定要想删除每行所必须满足的条件。,DELETE语句 示例,删除Studios 表中所有的行,DELETE FROM Studios WHERE state = AK 2 rows deleted.,Android访问SQLite,在Android访问SQLite数据库常用有两种方式: 扩展SQLiteOpenHelper类提供数据访问接口。 扩展Conte

16、ntProvider类来提供数据访问接口。,SQLiteOpenHelper,SQLiteOpenHelper类对于数据库访问能够实现很好的封装。如果我们在打开之前创建或更新数据库,可以通过实现SQLiteOpenHelper类实现这一需求。 在实现类中覆盖onCreate和onUpgrade方法,以及对应的构造方法。,有关数据库处理的代码片段,DBHelper(Context _context) super(_context, DATABASE_NAME, null, DATABASE_VERSION); context = _context; Override public void onCreate(SQLiteDatabase db) try db.execS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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