Android学习 数据存储 SharedPreference、SQLite

作为一个完整的应用程序,数据的存储与操作是必不可少的。Android系统为我们提供了四种数据存储 方式,分别是:SharedPreference、SQLite、File和ContentProvider。

SharedPreference:一种常用的数据存储方式,其本质就是基于xml文件存储键值对(key-value)数 据,通常用来存储一些简单的配置信息

SQLite:一个轻量级的数据库,支持基本SQL语法,是Android系统中常被采用的一种数据存储方式。 Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API。

文件储存:即常说的文件(I/O)存储方法,常用于存储数量比较大的数据,但缺点是更新数据将是一件 困难的事情。

 ContentProvider:它是Android系统中能实现应用程序之间数据共享的一种存储方式。由于Android系 统中,数据基本都是私有的,存放于“data/data/程序包名(package name)”目录下,所以要实现数据 共享,正确方式是使用ContentProvider。由于数据通常在各应用间是私密的,所以此存储方式较少使用, 但是其又是必不可少的一种存储方式。如果应用程序有数据需要共享时,就需要使用ContentProvider为这 些数据定义一个URI(包装成Uri对象),然后其他的应用程序就通过ContentResolver传入这个URI来对数 据进行操作。

SharedPreference主要存储一些配置信息:

感觉就是在用代码各种方法去动态编写或读取xml文件  

使用步骤:

1.使用Activity类的getSharedPreferences(String name, int mode)方法获得 SharedPreferences对象,其中存储键值对(key-value)的文件的名称由 getSharedPreferences方法的name指定mode则指定打开方式

2.使用SharedPreferences的edit()方法获得SharedPreferences.Editor对象

3.通过SharedPreferences.Editor的putXxx(String key,Xxx value)方法写 入键值对(key-value)。

4.通过SharedPreferences.Editor的commit()方法提交保存键值对(keyvalue)

实例:

SharedPreferences sharedPreferences = getSharedPreferences("type", Context.MODE_APPEND); Editor editor = sharedPreferences.edit(); // String字符串型 editor.putString("String", "words"); // Boolean布尔型 editor.putBoolean("Boolean", true); // Integer整型 editor.putInt("Integer", 1); // Long长整型 editor.putLong("Long", 1000000); // Float浮点数型 editor.putFloat("Float", 3.5f); editor.commit();

生成文件type.xml:

其他方法:

Sqlite这个重要

在Android中,SQLite的使用涉及两个重要的类,SQLiteDatabase和SQLiteOpenHelper:

 

字面意思数据库创建的工具类,传入一些必要参数即可new出对应Helper类,再用Helper类调用getReadableDatabase和getWritableDatabase可直接创建对应数据库,其中onCreate onUpgrade onOpen这三个方法为回调函数   

注:其实这些方法是为了代替sq语句使用面向对象思想来设计的,用sq语句同样可以完成。

须知:

ContentValues基本就等于一个Map(作为表中的一行的各种数据),可往里面添加键值对。

conflictAlgon:冲突解决方案。例如当数据表主键的唯一性检测出错的时候,就会按照该值设定的值进行处理。

nullColumnHack: 当values参数为空或者里面没有内容的时候,我们insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,我们要在这里指定一个 列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入。(一般此参数就写为null)

Query第二个参数意为要查回的数据为这一行中的哪几列列名

Cursor游标是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,为一种数据用完需关闭。

使用步骤:

注:factory为null则使用默认

查看这个数据库文件(数据库文件存储在android模拟器上当然得有模拟器插着手机才能看到):

创建的数据库文件位于/data- /data//databases/<数据库名>.db

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值