笔记_数据持久化

数据持久化

  • 文件存储

    • openFileOutput、openFileInput

    • 两个参数,第一个参数是不能包含路径的文件名,第二个是读写的模式,一般默认,会覆盖文件原有的内容。

  • SharedPreferences存储

    • 通过上下文获取对象

    • 写:获取editor对象,调用put方法的重载,最后apply提交

    • 读:直接通过sp对象读取

  • SQLite 数据库

    • android内置的轻型数据库

    • 使用:

      • 创建一个类继承SQLiteHelper 实现需要实现的方法,其中onCreate会在数据库第一次被创建的时候调用,所以只会调用一次,通常用于创建初始的表,而onUpdate方法用于以后版本有更新的时候调用,用于增添表,根据版本号来判断是否调用

      • SQLiteHelper 的实现类对象调用getReadableDatabase()或者getWritableDatabase()方法来打开或者创建数据库并返回一个队数据库可读可写的对象,前者当内存不可写时会返回一个只能读的对象,而后者直接报错

      • 最少4个参数的构造方法中,第一个是上下文context,第二个是数据名,第三个是自定义cursor,传入null就可以了,最后一个是版本号,版本号会影响onUpdate的调用

      • 数据库读写对象可以直接通过方法对数据库进行CRUD操作

        • insert:参数为:表名,null,ContentValues。而最后一个是类似于map一样的类,用于存储键值对,其中键是表中的字段,值是要插入的值,这个对象的clear方法用于清除上一次添加的数据,方便下次再添加

        • update:参数为:表名,ContentValues,约束1,约束2. 后面两个参数用于约束更新的行数,不写默认更新所有

        • delete:参数为:表名,约束1,约束2

        • query:参数:表名,列约束,行约束1,行约束2,group by,过滤,排序方式。返回结果是一个Cursor对象

        • 调用Cursor对象的moveToFirst和moveToNext方法和getXxxx(index)、getColumnIndex(字段名)对返回结果进行遍历得到查询的数据

        • 最后cursor要进行关闭:cursor.close();

      • Android中也可以直接编写sql语句执行来操作数据库而不需要调用各种方法传递各种参数,例如编写了一条sql语句,直接调用数据库读写对象的execSQL方法就可以执行,在编写sql的时候可以使用预编译的写法,将sql语句中需要的参数先使用?占位符替代,然后再指定占位符的值。指定占位符的值要使用字符串数组,一个?对应一个值。特别的是,查询数据的方法使用的是rawQuery

  • LitePal,是一款Android开源的数据库框架,它采用对象关系映射的模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值