sqliteOpenHelper 几个重要方法:
onCreate(sqliteDatabase db);
用于初次使用软件时生成数据库表
当调用sqliteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的sqliteDatabase实例的时候,
如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,
在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据
onUpgrade(sqliteDatabase db,int oldVersion,int newVersion);
在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号
getWritableDatabase();
getReadableDatabase();
两方法都可以获取一个用于操作数据库的sqliteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。
sqliteDatabase常用方法
1、db.insert(table,nullColumnHack,values)
第一个参数是表名称,第二个参数是空列的默认值,第三个参数是ContentValues类型的一个封装了列名称和列值的Map;
2、db.delete(table,whereClause,whereArgs)
第一个参数是表名称,第二个参数是删除条件,第三个参数是删除条件值数组
3、db.update(table,values,whereArgs)
第一个参数是表名称,第二个参数是更行列ContentValues类型的键值对(Map),第三个参数是更新条件(where字句),第四个参数是更新条件数组
4、db.query(table,columns,selection,selectionArgs,groupBy,having,orderBy)
5、db.execsql(sql)
6、db.rawQuery(sql,selectionArgs)
Cursor
各个参数的意义说明:
①table:表名称
②columns:列名称数组
③selection:条件字句,相当于where
④selectionArgs:条件字句,参数数组
⑤groupBy:分组列
⑥having:分组条件
⑦orderBy:排序列
⑧limit:分页查询限制