数据存储

Android系统中主要提供了三种方式用于简单实现数据持久化功能,即文件存储、SharedPreference存储以及数据库存储,当然,我们也可以将数据保存在手机的SD卡中,只是上面提到的三种方式使用起来更加简单,安全。


文件存储

写文件:Context类中提供了一个openFileOutput()方法,接收两个参数,第1个为文件的名字,注意这里不包括文件的路径,所有的文件都默认存储到/data/data/<packagename>/files/目录下;第2个为文件的操作模式,有两种模式MODE_PRIVATE(默认)和MODE_APPEND

读文件:Context类中提供了一个openFileInput()方法,只接收一个参数,为文件的名字,也是不包含路径,默认到/data/data/<packagename>/files/目录下读取文件。


SharedPreference

获取SharedPreference对象有以下三种方法:

1.   Context类的getSharedPreferences()方法,接收两个参数,第1个为文件的名字,文件默认存储在/data/data/<packagename>/shared_prefs/目录下;第2个为文件的操作模式,有两种模式MODE_PRIVATE和MODE_MULTI_PROCESS。

2.   Activity类中的getPreferences()方法,只接收一个参数,文件的操作模式。默认将当前Activity的类名作为文件名。

3.   PreferenceManager类中的getDefaultSharedPreferences()方法,默认将当前包名作为文件名。

SharedPreferences存储数据步骤:

1.    调用SharedPreferences对象的edit()方法来获取SharedPreferences.Editor对象

2.    向SharedPreferences.Editor对象添加数据,使用putString(),putInt()…等方法

3.    调用commit()方法将添加的数据提交,从而完成数据存储操作

SharedPreferences读取数据步骤:

调用SharedPreferences对象的一系列get()方法直接读取数据,如getString()、getInt()等


数据库

Android提供了一个SQLiteOpenHelper帮助类方便我们对数据库进行创建和升级。它是一个抽象类,其中有两个抽象方法,分别是onCreate()和onUpgrade(),我们必须在自己的帮助类中重写这两个方法,然后分别在这两个方法中实现创建、升级数据库的逻辑。一般使用SQLiteOpenHelper(Context, 数据库名, null, 版本号)这个构造方法,得到该类的实例后,我们再调用它的getReadableDatabase()或getWritableDatabase()方法就能够创建数据库了,数据库文件默认存放在/data/data/<packagename>/databases/目录下。通常在onCreate()中处理一些创建表的逻辑,而在onUpgrade()方法中对数据库进行升级逻辑处理。

常用API

添加数据:db.insert(table, nullColumnHack, ContentValues)

更新数据:db.update(table, ContentValues, whereClause, whereArgs)

删除数据:db.delete(table, whereClause, whereArgs)

查询数据:查询数据比较复杂,重载的方法至少有七个参数,我们看下这七个参数的含义

query()方法参数

对应SQL部分

描述

table

from table_name

指定查询的表名

columns

select column1, column2

指定查询的列名

selection

where column = value

指定where的约束条件

selectionArgs

-

为where中的点位符提供具体的值

groupBy

group by column

指定需要group by的列

Having

having column = value

对group by后的结果进一步约束

orderBy

order by column1, column

指定查询结果的排序方式

Android为我们提供了很多非常方便的API操作数据库,但当时,也支持我们直接使用SQL语句操作数据库,比如,增加数据、删除数据、更新数据,我们都可以直接使用db.execSQL(“SQL语句”) 的方式来操作数据库,而查询数据的话可以使用db.rawQuery(“SQL语句”)来操作数据库。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值