SQLiteDataBase、SQLiteOpenHelper、ContentProvider介绍和区别

1.SQLiteOpenHelper是将对数据库和表的创建、插入、更新、删除操作进行了简单的封装;

2、SQLiteDataBase代表一个数据库(底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDataBase对象,接下来就可以通过SQLiteDataBase对象来管理和、操作数据库

3.而ContentProvider可以说是一个对外的接口,除了可以实现对SQLiteOpenHelper的封装,还可以实现对文件操作、图片操作、对象操作等实现封装;

4.在多线程中使用SQLiteOpenHelper要考虑线程同步问题,而如果使用ContentProvider的话基本不用考虑;

首先我们先了解一下SQLiteDatabase里面包含的方法,(ps:有点多,也有点烦,但是只要耐下心来看,还是可以看懂的,我就是这么过来的)

SQLite提供了一下的静态方法来打开一个文件对应的数据库:

 Static SQLiteDataBase openDatabase(String path,SQLiteDataBase.CursorFactory factory,int falgs)打开path文件所代表的SQLite的数据库。

static SQLiteDataBase openOrCreateDataBase(file,SQLiteDataBase.Cursor Factory factory)打开或创建(如果文件不存在)field文件所代表的SQLite数据库。

static SQLiteDataBase openOrCreateDataBase(String path, SQLiteDataBase)打开或创建(如果文件不存在)path文件所代表的SQLite数据库。

在程序中获得SQLiteDataBsase对象之后,接下来就可调用SQLiteDatabase的如下方法来操作数据库了

  execSQL(String sql,Object[] bindArgs):执行定占位符的SQL语句。

execSQL(String sql):执行SQL语句。

insert(string table,ContentValues,String WhereCalues,String[]):向执行表中插入数据

update(Stirng table,ContentValues values.String WhereCalues,String[]   WhereArgs)更新指定表中的数据

delete(String table,String WHereClaus,String[] whereArgs):删除指定表中的特定数据

Cursor query(String table,Stirng[] colums,Stirng WhereCaluse,String[] whereargs,String having,Strig orderBy):对执行数据进行出询。

Cursor query(String table,Stirng[] colums,Stirng WhereCaluse,String[] whereargs,String having,Strig orderBy,String limit):对执行数据表执行查询。limit参数控制最多查询几条记录(用于控制分页的参数)

Cursor query(boolean distinct,String table,Stirng[] colums,Stirng WhereCaluse,String[] whereargs,String having,Strig orderBy,String limit):对指定表执行查询语句。其中第一个参数控制是否去除重复值。

rawQuery(String sql,String[] selectionArgs):执行带占位符的sql查询。

beginTransaction():开始事务

endTransaction():结束事务。

SQLiteOpenHelper类

常用的方法:

synchronzed SQLiteDataBase getReadableDatabase():以读写的方式打开数据库对应的SQLiteDatabase对象

synchronzed SQLiteDataBase getWRitableDatabase():以写的方式打开数据库对应的SQLiteDatabase对象

abstract void onCreate(SQLiteDataBase db):当第一次创建数据库时回调该方法。

abstract void onUpgrade(SQLiteDataBase db,int oldVersion, int newVersion):当数据库版本更新时回调该方法

synchronized void close():关闭所有打开的SQLiteDataBase




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值