Android SQLite

SQLite使用

一、SQLiteOpenHelper

SQLiteOpenHelper是个抽象类,所以需要实体类去继承它

提供两个抽象方法onCreat()和onUpgrade()用来创建和升级数据库

提供两个实例方法

getReadableDatabases()和getWritableDatabases(),这两个方法都可以创建或返回一个可读写的数据库,不同的是当数据库不可写入时(如磁盘空间满),那么getReadableDatabases()将会以只读的方式打开数据库,而getWritableDatabases()则会出现异常,所以平时使用推荐 getReadableDatabases()方法

SQLiteOpenHelper有两个构造方法(可重写),一般使用参数少的那个构造方法。

此方法接收4个参数

1.Context

2.数据库名称

3.第三个参数允许我们在查询数据库的时候返回一个自定义的Cursor,一般直接传入null,如果需要 传入一个cursor对象即可,在构造方法中 对应SQLiteDatabases.Cursorfactory cursor

4.传入一个当前版本号,用于升级数据库

 

二、使用SQLite进行增查改删(CRUD)

1.添加数据

  getReadableDatabases()和getWritableDatabases()两个实例方法会返回一个数据库实例对象,创建使用ContentValues类型对象用来装载数据,ContentValues对象提供了put()方法的多个重载,只需在put()方法的参数列表中以("字段名","值")的形式添加即可,然后调用数据库实例对象的insert()方法来插入数据,insert()方法需要三个参数,第一个是 表名 ,第二个是 用于未指定添加数据的情况下给某些可为空的列自动赋值NULL,一般不需要,直接传入null, 第三个是 ContentValues对象。如图↓

2.更新数据

更新数据,系统为我们提供了一个updata()方法,这个方法第一个参数和insert()方法一个 也是表名,第二个参数是 ContentValues对象 , 第三第四个参数是用来约束更新某一行或几行的数据,不指定 默认更新所有行, 如图↓

3.删除数据

删除数据相比较其他三种方法最为简单,因为删除不需要传ContentValues对象过去,所以系统提供的delete()方法需要三个参数,同样第一个 还是表名 ,毕竟咱们得知道 咱们要操作的是哪张表嘛,然后第二第三个参数用于约束删除某一行或几行,不指定 默认删除所有行。 如下图↓↓↓

4.查询数据

这特么才是重头戏,毕竟SQL的全称是 Structured Query Language(结构化查询语言),很明显 查询才是重中之重啊!!!。

所以 系统提供的query()方法,最短的一个方法重载也需要7的参数😭,不过其实 我们平时并用不到这么复杂的,比如 笔者就选择了查询全部,也是所有的查询操作中最简单的,这里就不做过多讲解了,用到的时候再去看文档吧。

PS:需要注意的是 cursor.moveToFirst()方法是 将光标指针移动到第一行数据,因为默认的光标指向的位置是第一行的上一行,以此用来判断是否有数据。

相类似的的  while()语句中的moveToNext()方法是用来将光标移动至 下一行数据。

还有就是 用完 记得关闭cursor!!!   用完 记得关闭cursor!!!   用完 记得关闭cursor!!!      重要的事情说三遍

 

posted @ 2017-06-17 11:51  昕无旁骛  阅读(251)  评论(0编辑  收藏  举报