数据持久化技术
数据持久化就是将那些在内存中的瞬时数据保存到存储设备中,保证手机或电脑在关机状态下,这些数据仍然不会丢失。Android 系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、SharedPreference 存储以及数据库存储。
文件存储
是Android最基本的数据存储方式,也就是常说的I/O存储,它不对存储的内容进行任何格式化处理,所有的数据都是原封不动的保存到文件中,比较适合存储一些简单的文本数据和二进制数据,缺点是更新数据比较困难。
写:openFileOutput(“example”, Context.MODE_PRIVATE);
example是文件名 Context.MODE_PRIVATE是操作模式,表示当指定定同样文件名的时候,所写入的内容将会覆盖原文件中的内容 Context.MODE_APPEND,表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件。
读:openFileInput(“example”);
example是文件名
SharedPreference存储
获取SharedPreference存储的3种方式
1.Context 类中的 getSharedPreferences()方法 SharedPreferences sp = getSharedPreferences("example", Context.MODE_PRIVATE); "example"是文件名 Context.MODE_PRIVATE是操作模式 2.Activity 类中的 getPreferences()方法 SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE); 3.PreferenceManager 类中的 getDefaultSharedPreferences()方法 SharedPreferences dsp = PreferenceManager.getDefaultSharedPreferences(this); 这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。
对数据进行操作
写
- 调用 SharedPreferences 对象的 edit()方法来获取一个SharedPreferences.Editor 对象。
- 向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用
putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。 - 调用 commit()方法将添加的数据提交,从而完成数据存储操作。
读
- 获取 SharedPreferences 对象
- 调用SharedPreferences 对象的getXxx(“key”,defaultValue)方法获取相应类型的数据
SQLite数据库存储
创建数据库
- 新建一个类ExampleSQLite继承自SQLiteOpenHelper
- 重写构造方法
- 重写onCreate(),onUpgrade()
- 在onCreate()执行创建数据库的语句
- 获取SQLiteDatabase对象,从而创建完成
升级数据库
此次数据库的版本高于上一次,就会执行onUpgrade(),进行更新数据库
添加数据
- 获取SQLiteDatabase对象
- 使用ContentValues来对要添加的数据进行组装
- 调用insert()方法进行添加数据
更新数据
- 获取SQLiteDatabase对象
- 使用ContentValues来对要更新的数据进行组装
- 调用update()方法进行更新数据
删除数据
- 获取SQLiteDatabase对象
- 调用delete()方法,对指定的数据进行删除
查询数据
- 获取SQLiteDatabase对象
- 调用query()方法对指定数据进行查询,获得cursor对象
- 遍历cursor对象,可将数据查询出来
使用事务
事务的特性是保证某一系列操作要么全部完成,要么一个都不会完成。
- 获取SQLiteDatabase对象,用该对象的beginTransaction()开启事务
- 在对数据库惊醒一系列的操作后边调用setTransactionSuccessful(),表示事务已经执行成功了。
- 在finally代码块中调用endTransaction()方法结束事务