持久化技术
文件储存
⽂件存储 是 Android 中最基本的数据存储⽅式,它不对存储的内容进⾏任何格式化处理,所有数据都是 原封不动 地保存到⽂件当中的 Context 类中提供了⼀个 openFileOutput() ⽅法,可以⽤于将数据存储到指定的⽂件中 openFileOutput() 接收两个参数:第⼀个参数是⽂件名;第⼆个参数是⽂件的操作模式,主要有 MODE_PRIVATE和 MODE_APPEND两种模式 MODE_PRIVATE 表⽰当指定相同⽂件名的时候,所写⼊的内容将会覆盖原⽂件中的内容 MODE_APPEND 表⽰如果该⽂件已存在,就往⽂件⾥⾯追加内容,不存在就创建新⽂件 Context 类中还提供了⼀个 openFileInput() ⽅法,⽤于从⽂件中读取数据 openFileInput() 接收一个参数,即文件名Sharedpreferences储存
context类中getsharedpreferences()方法,getsharedpreferences()接收两个参数:第⼀个参数⽤于指定SharedPreferences⽂件的名称,第⼆个参数⽤于指定操作模式,⽬前只有MODE_PRIVATE这⼀种模式
Activity类中getPreferences()方法,getPreferences()方法只接收⼀个操作模式参数
SharedPreferences 对象中提供了⼀系列的 get ⽅法,⽤于读取存储的数据,每种get ⽅法都对应了 SharedPreferences.Editor中的⼀种 put ⽅法 get ⽅法都接收 两个 参数:第⼀个参数是键,传⼊存储数据时使⽤的键就可以得到相应的值了;第⼆个参数是默认值,即表⽰当传⼊的键找不到对应的值时会以什么样的默认值进⾏返回。SQLite数据库储存
SQLite的数据类型:integer表⽰整型,real表⽰浮点型,text表⽰⽂本类型,blob表⽰⼆进制型。
SQLiteOpenHelper中有两个抽象⽅法: onCreate() 和 onUpgrade() 添加数据:SQLiteDatabase中提供了⼀个insert()⽅法,专门⽤于添加数据,它接收3个参数:第⼀个参数是表名,我们希望向哪张表⾥添加数据,这⾥就传⼊该表的名字;第⼆个参数⽤于在未指定添加数据的情况下给某些可为空的列⾃动赋值NULL,⼀般我们⽤不到这个功能,直接传⼊null即可;第三个参数是⼀个ContentValues对象,它提供了⼀系列的put()⽅法重载,⽤于向ContentValues中添加数据
更新数据:
SQLiteDatabase中提供了⼀个⾮常好⽤的update()⽅法,⽤于对数据进⾏更新。这个⽅法接收4个参数:第⼀个参数和insert()⽅法⼀样,也是表名,指定更新哪张表⾥的数据;第⼆个参数是ContentValues对象,要把更新数据在这⾥组装进去;第三、第四个参数⽤于约束更新某⼀⾏或某⼏⾏中的数据,不指定的话默认会更新所有⾏。
删除数据: SQLiteDatabase 中提供了⼀个 delete() ⽅法,专门⽤于删除数据。这个⽅法接收 3个 参数:第⼀个参数仍然是 表名 ,这个没什么好说的;第⼆、第三个参数⽤于约束删除某⼀⾏或某⼏⾏的数据,不指定的话默认会删除所有⾏。 查询数据: SQLiteDatabase 中还提供了⼀个 query() ⽅法⽤于对数据进⾏查询,需要传⼊ 7个参数 第⼀个参数不⽤说,当然还是 表名 ,表⽰我们希望从哪张表中查询数据。第⼆个参数⽤于指定去查询哪⼏列,如果不指定则默认查询所有列。第三、第四个参数⽤于约束查询某⼀⾏或某⼏⾏的数据,不指定则默认查询所有⾏的数据。第五个参数⽤于指定需要去group by 的列,不指定则表⽰不对查询结果进⾏group by 操作。第六个参数⽤于对 group by 之后的数据进⾏进⼀步的过滤,不指定则表⽰不进⾏过滤。第七个参数⽤于指定查询结果的排序⽅式,不指定则表⽰使⽤默认的排序⽅式。