第五章:SQLite

  • 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);
    }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值