一、SQLiteOpenHelper:
这个类主要生成一个数据库,并对数据库的版本进行管理。当在程序当中调用这个类的方法getWritableDatabase(),或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android 系统就会自动生成一个数据库。SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里边的3 个函数,具体函数如下所示。
• onCreate(SQLiteDatabase):在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表。
• onUpgrade(SQLiteDatabase, int, int) :当数据库需要升级的时候,Android 系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求。
• onOpen(SQLiteDatabase):这是当打开数据库时的回调函数,一般也不会用到。
具体实例如下:
二、数据库操作
1、得到数据库对象,方法有2个,第一种是用SQLiteOpenHelper对象的getReadableDatabase()、getWritableDatabase()方法。
第二种是采用openOrCreateDatabase()方法,示例代码如下:
注意,执行SQL语句的代码最好放在try catch语句中,增强程序的健壮性!
2、查询(query):
query()方法各个参数的含义:
①Boolean类型,可选参数,指定返回值是否唯一(官方API解释为true if you want each row to be unique, false otherwise.)
②string类型,表的名称
③string数组,列出所需查询的列的信息
④string类型,selection,相当于sql 语句的where 部分,用于过滤需要查询列的信息,可以包含占位符“?”,如果想返回所有的数据,那么就直接置为null
⑤string数组,selectionArgs。在selection 部分,你有可能用到"?",那么在selectionArgs 定义的字符串会代替selection 中的"?",用于替换where子句中的"?"数组。
⑥string类型,参数为groupBy。定义查询出来的数据是否分组,如果为null 则说明不用分组。
⑦string类型,参数为groupBy。定义查询出来的数据是否分组,如果为null 则说明不用分组
⑧string类型,参数为orderBy,来描述我们期望的返回值是否需要排序,如果设置为null 则说明不需要排序
⑨string类型,可选参数,定义对返回行行数的限制。
3、cursor和ContentValues
cursor又叫游标,相当于对底层数据中结果集的指针。ContentValues和Hashtable 比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String 类型,
而值都是基本类型。
4、delete:
第三课参数含义:如果在第二个参数当中有"?"符号,那么第三个参数中的字符串会依次替换在第二个参数当中出现的?符号。
删除表的操作:
5、update
6、Insert
注:在ListView中的数据更新后可以使用renderListView()进行刷新!