6.数据持久化

数据持久化

数据持久化是将数据存储到磁盘上. andrlid的存储话方案有两个,一个是文件的方式,另外一个是SQLite关系数据库.

文件就是java的io流.我们关注的是SQLite.

SQLite的创建与升级

在android中,提供了一个SQLiteOpenHelper类来对数据库进行创建和升级.不过这个类是抽象的,他有四个重要的方法需要继承者实现.一个是onCreate(),一个是onUpgrade() 负责创建和升级.

getReadableDatabase(),和getWritableDatabase() 是可以创建和打开数据的,没有就创建,有就打开.

SQLiteOpenHelper有两个构造方法,一般四个参数的构造方法以及可以满足需要,第一个是Contenx;第二个是数据库名称;第三个是Cusor,用于查询返回,一般传入null;第四个是数据库版本号,用于数据库升级.

SQLiteOpenHelper创建实例后,创建的文件存储与/data/data/package name/databases. 重写的oncreate方法会执行,可以处理一些创建表的逻辑.需要注意的是,数据库一旦创建成功,下次在执行代码,onCreate()代码不会在执行,所以后面如果要在新增表,可以写在onUpgrade里.但只这样还不行,在第一次执行时,传入的数据库版本号是1,第二次执行传入2,这样onUpgrade就会执行了.

数据的CRUD操作

C是创建,R是查询,U是更新,D删除. 这是数据库的操作. 通常需要SQL来操作.不过androi提供了一些操作接口,加入下面是以及创建了一个book表的mydb.db.

MyDatabaseHelper dbHelper=new MyDatabaseHelper(this,"mydb.db",null,1);
SQLiteDatabase db=dbHelper.getWritableDatabase();
ContentValues values = new ContenValues();
values.put("列名","列值");
//插入
db.insert("表名",null,values);
values.clear();

//更新
values.put("列名","要更新的值");
//更新,第三个参数是条件,第四个是条件值数组
db.update("表名",values,"name=?",new String[]{"条件值1 条件值2 条件值3"})

//删除
db.delete("表名","pages>?",new String[]{"100"})

//查询
查询的函数方法比较多,还是直接使用sql操作比较简单

//sql操作
db.execSQL("SQL 脚本");
db.execSQL("select * from table where namn=?",new String[]{"条件1 条件2"})

LitePal

对sqlite的进一步封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT老卢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值