- SQLiteDatabase常用方法
- Cursor常用方法
- ContentValues
在添加、修改;代表意义包装一行数据。
本质:Map集合;key=>代表的数据库中字段,value=>字段设定值 - whereClause
用占用符填充:条件 表达式 name=?
用值直接填充::条件 表达式name=’AAA’,whereArgs可以不用传值
第六章:内容提供者
6.1 内容提供者简介
- 内容提供者(ContentProvider)是Android系统四大组件之一,用于保存和检索数据,是Android系统中不同应用程序之间共享数据的接口。
- ContentResoiver是不同应用程序之间进行数据交换的标准API,以Uri形式对外提供数据,允许其他应用程序本应用数据。其他应用则使用ContentResolyer,并根据ConentProvider提供的Uri操作指定数据。
6.2.1创建一个内容提供者
-
定义一个类继承android.content包下的ContentProvider类(抽象类)。子类需要重写它的onCreate()、delete()、getType()、insert()、query()、update()这几个抽象方法。
-
ContentProvider是四大组件之一,必须要在清单文件中注册
<provider android:name=”cn.itcast.db.PersonDBProvider" android:authorities=”cn.itcast.db.personproivder </provider>
6.2创建内容提供者
6.2.2 Uri简介
- ContentProvider的几个抽象方法,这几个抽象方法有一个参数Uri,它代表了数据的操作方法。Uri是由scheme、authorites、path三部分组成。
scheme:“content://”是一个标准的前缀,表明这数据被内容提供者所控制,它不会被修改;
authorities:“cn.itcast.db.personprovider”是在清单文件中指定的android:authorities属性值,该值必须唯一,它表示了当前的内容提供者;
path:“/person”代表资源(或者数据),当访问者需要操作不同数据时,这个是动态改变的。
6.2.2uri简介
- Uri.Parse(String str)方法是将字符串转化成Uri对象的。为了解析Uri对象,Android系统提供了一个辅助工具类UriMatcher用于匹配Uri。
- UriMatcher中的常用方法如表所示
6.3访问内容提供者
6.3.1ContentResolver的基本方法
-
在Android系统中,ContentResolver充当桥梁的角色,应用程序通过ContentProvider暴露自己的数据,通过ContentResolver对应用程序暴露的数据进行操作。
-
通过ContentResovler对象实现数据的操作如下:
Uri uri=Uri.parse(“content://cn.itcast.db.personprovider/person”); ContentResolver resolver resolver=context.getContentResolver(); Cursor cursor=resolver.query(uri,new String[]{“address”,“date”,“type”,“boby”},null,null,null); while(cursor.move ToNext()){ String address=cursor.getString(0); …… } cursor.close();
1.获取提供者:getContentResolver();ContentREsolver对象
2.访问内容提供者:增删改查ContentResolver resolver=getContentResolver(); Uri uri=Uri.parse("content://com.provider111/query"); Cursor cuesor=resolver.query(uri,null,null,null,null); if(cursor!=null&&cursor.getCount()>0){ while(cursor.moveToNext()){ long_id=cursor.getInt(0); String sname=cursor.getString(1); String sno=cursor.getString(2); String sex=cursor.getString(3); int img=cursor.getInt(4); Student student=new Student(_id,sname,sno,sex,img); System.out.println(student); } }