Android系统中提供了3种方式用于简单地实现数据持久化,分别是 文件存储、SharedPreferences存储
、SQLite数据库存储

文件存储

简介

文件存储示例

以上代码解释

简介

从文件中读取数据示例

以上代码的解释

SharedPreferences存储

感觉和web浏览器的localStroage类似

简介

Android中提供了3种方法来用于得到SharedPreferences对象

第一种方法来存储数据到SharedPreferences

SharedPreferences是使用XML格式来对数据进行管理的

存储完之后从SharedPreferences中读取数据

对以上代码的解释

可使用SharedPreferences来实现记住密码的功能

SQLite数据库存储

安卓为什么需要一个本地的关系型数据库?

安卓的SQLiteOpenHelper帮助类

一些理论知识

首先建立一个MyDatabaseHelper类去继承SQLiteOpenHelper(我们必须有自己的帮助类)

在onCreate()方法中调用了execSQL()这样能保证在数据库创建完成的同时还能成功创建Book表
调用创建数据库的方法

关键的代码是使用
private MyDatabaseHelper dbHelper
得到一个实例
然后调用构造函数
new MyDatabaseHelper(this,”BookStore.db”,null,1)
来构造这个实例
然后再用这个实例使用相应的实例方法dbHelper.getWritableDatabase()

升级数据库
//比如想往数据库再新增一张表
修改MyDatabaseHelper(加粗是修改的内容)

以上代码的解释

修改完MyDatabaseHelper之后就是想办法让onUpgrade()方法执行了

关键点:数据库版本号是2,这时候就会new这个操作就会调用onUpgrade()

添加数据

SQLiteDatabase中提供了insert()update()delete()query()

insert()

以上代码的解释

update()


以上代码的解释

delete()


以上代码的解释

query()


query示例

以上代码的解释

使用LitePal操作数据库

LitePal是一款开源的Android数据库框架,采用了ORM的模式

突然感觉这里的ORM,和在前端里的DOM两种的思想有某种相似之处

对于ORM而言,O是Object,而R是relational,M是Mapping
Java应用程序需要和SQL数据库进行交互,无奈Java应用程序是用Java面向对象的思想来写的,而数据库是根据SQL结构化语言来写的,我们在这里做了一层Mapping,让我们用JAVA面向对象的方式来操作数据库

对于DOM而言,D是Document,而O是Object ,M是Model
在Web中,文档的内容是用HTML标签来表示的,而文档的逻辑是用JavaScript来实现的,我们把一个HTML标签对应地实现它相应的一个JavaScript Object(将HTML的attribute映射为object的key等等)我们可以用JavaScript来动态地修改HTML标签等等