1.SQLite介绍
要操作SQLite必须先有SQLiteOpenHelper的类的对象,SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新,它是一个抽象类,我们必须写自己写一个类来继承它的onCreate和onUpgrade方法。
2.SQLiteOpenHelper的使用方法
SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version)
构造方法,一般是传递一个要创建的数据库名称及参数
onCreate(SQLiteDatabase db)
创建数据库时调用,在第一次创建数据库时执行,实际上是第一次得到SQLiteDatabase的对象时
onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)
版本更新时调用
getReadableDatabase()
创建或打开一个只读数据库
getWritableDatabase()
创建或打开一个读写数据库
3.数据库的创建与增、删、改、查
数据库的创建:
通过调用SQLiteOpenHelper类的getReadableDatabase()方法来实现创建一个数据库
数据添加:
(1)使用insert方法
(long) insert(String table,String nullColumnHack,ContentValues values)
table:要插入数据的表的名称
nullColumnHack:当values参数为空或者里面没有内容的时候,我们insert是会失败的
(底层数据库不允许 插入一个空行),为了防止这种情况,我们要在这里指定一个列名,
到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后
再向数据库中插入。
values:待插入的数据
return:新插入一行的行ID,或者一个错误;
ContentValues cv = new ContentValues();
cv.put("列名" , "内容'');
db.insert("表名", null, cv);
(2)使用execSQL方式来实现
db.execSQL("insert into 表名(列名1,列名2) values(内容1,内容2); ");
数据删除:
(1)使用delete方法
(int) delete(String table,String whereClause,String[] whereArgs)
table:删除的表的名字;
whereClause:删除的条件
;
whereArgs:删除条件的参数:
return:受whereClause影响所删除的列,若删除所有的行,则返回1,反之返回0;
String whereClause = "列名";
String[] whereArgs = {"内容"};
db.delete("表名",whereClause,whereArgs);
(2)使用execSQL方式来实现
db.execSQL("delect from 表名 where 列名='内容'; ");
数据修改:
(1)使用update方法
(int) update(String table, ContentValues values, String whereClause, String[] whereArgs)
table:修改的表的名字
values:待修改的数据
whereClause:删除的条件
;
whereArgs:删除条件的参数:
return:受影响的行数
ContentValues cv = newContentValues();
cv.put("待修改的列名","修改后的内容");
String whereClause = "列名=?";
String[] whereArgs = {"内容"};
cv. update(表名, cv, whereClause, whereArgs);
(2)使用execSQL方式来实现
数据查询
通过query实现查询的
public Cursor query(String table, String[] columns, String selection, String[] selectionArgs,
String groupBy, String having, String orderBy, String limit)
table:表名称colums:列名称数组
selection:条件子句,相当于where
selectionArgs:条件语句的参数数组
groupBy:分组
having:分组条件
orderBy:排序类
limit:分页查询的限制
Cursor:返回值