3)SQLite 存储方式
SQLite 是Android 所带的一个标准的数据库,它支持SQL 语句,它是一个轻量级的嵌入式数据库.
小知识:
什么是 SQLiteDatabase?
一个 SQLiteDatabase 的实例代表了一个SQLite 的数据库,通过SQLiteDatabase 实例的一些方法,我们可以执行SQL 语句,对数据库进行增,删,查,改的操作.需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的.
什么是 SQLiteOpenHelper?
根据这名字,我们可以看出这个类是一个辅助类.这个类主要生成一个数据库,并对数据库的版本进行管理.当在程序当中调用这个类的方法getWritableDatabase(),或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android 系统就会自动生成一个数据库.SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里边的3 个函数,具体函数如下所示:
onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表.
onUpgrade(SQLiteDatabase, int, int) :当数据库需要升级的时候,Android 系统会主动的调用这个方法.一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求.
另外我们在进行查询的时候后调用这句代码:
下面对里面的参数进行一下说明:
第一个参数是数据库里边表的名字,比如在我们这个例子,表的名字就是TABLE_NAME,也就是"diary".
第二个字段是我们想要返回数据包含的列的信息.在这个例子当中我们想要得到的列有title、body.我们把这两个列的名字放到字符串数组里边来.
第三个参数为selection,相当于sql 语句的where 部分,如果想返回所有的数据,那么就直接置为null.
第四个参数为selectionArgs。在selection 部分,你有可能用到?,那么在selectionArgs 定义的字符串会代替selection 中的?.
第五个参数为groupBy.定义查询出来的数据是否分组,如果为null 则说明不用分组.
第六个参数为having,相当于sql 语句当中的having 部分.
第七个参数为orderBy,来描述我们期望的返回值是否需要排序,如果设置为null 则说明不需要排序.
什么是 Cursor?
Cursor 在Android 当中是一个非常有用的接口,通过Cursor 我们可以对从数据库查询出来的结果集进行随机的读写访问.
什么是 ContentValues 类?
ContentValues 类和Hashtable 比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String 类型,而值都是基本类型.
什么是 SimpleCursorAdapter ?
ArrayAdapter 和SimpleAdapter.和它们俩类似,SimpleCursorAdapter 也是集成Adapter.ArrayAdapter负责把一个字符串数组中的数据填充到一个ListView 当中,而对应的SimpleCursorAdapter 负责把Cursor 里边的内容填充到ListView 当中.通过SimpleCursorAdapter 可以把数据库当中一列的数据和ListView 中一排进行对应起来.和前两个Adapter 类似,要求和数据进行对应的View 必须是TextView 或者ImageView.
SQLite 是Android 所带的一个标准的数据库,它支持SQL 语句,它是一个轻量级的嵌入式数据库.
小知识:
什么是 SQLiteDatabase?
一个 SQLiteDatabase 的实例代表了一个SQLite 的数据库,通过SQLiteDatabase 实例的一些方法,我们可以执行SQL 语句,对数据库进行增,删,查,改的操作.需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的.
什么是 SQLiteOpenHelper?
根据这名字,我们可以看出这个类是一个辅助类.这个类主要生成一个数据库,并对数据库的版本进行管理.当在程序当中调用这个类的方法getWritableDatabase(),或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android 系统就会自动生成一个数据库.SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里边的3 个函数,具体函数如下所示:
onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表.
onUpgrade(SQLiteDatabase, int, int) :当数据库需要升级的时候,Android 系统会主动的调用这个方法.一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求.
另外我们在进行查询的时候后调用这句代码:
Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);
下面对里面的参数进行一下说明:
第一个参数是数据库里边表的名字,比如在我们这个例子,表的名字就是TABLE_NAME,也就是"diary".
第二个字段是我们想要返回数据包含的列的信息.在这个例子当中我们想要得到的列有title、body.我们把这两个列的名字放到字符串数组里边来.
第三个参数为selection,相当于sql 语句的where 部分,如果想返回所有的数据,那么就直接置为null.
第四个参数为selectionArgs。在selection 部分,你有可能用到?,那么在selectionArgs 定义的字符串会代替selection 中的?.
第五个参数为groupBy.定义查询出来的数据是否分组,如果为null 则说明不用分组.
第六个参数为having,相当于sql 语句当中的having 部分.
第七个参数为orderBy,来描述我们期望的返回值是否需要排序,如果设置为null 则说明不需要排序.
什么是 Cursor?
Cursor 在Android 当中是一个非常有用的接口,通过Cursor 我们可以对从数据库查询出来的结果集进行随机的读写访问.
什么是 ContentValues 类?
ContentValues 类和Hashtable 比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String 类型,而值都是基本类型.
什么是 SimpleCursorAdapter ?
ArrayAdapter 和SimpleAdapter.和它们俩类似,SimpleCursorAdapter 也是集成Adapter.ArrayAdapter负责把一个字符串数组中的数据填充到一个ListView 当中,而对应的SimpleCursorAdapter 负责把Cursor 里边的内容填充到ListView 当中.通过SimpleCursorAdapter 可以把数据库当中一列的数据和ListView 中一排进行对应起来.和前两个Adapter 类似,要求和数据进行对应的View 必须是TextView 或者ImageView.