【恒大彩票登录】第 6 章:星座提供者

2019-10-08 作者:历史 / 中国史   |   浏览(64)

本章节不是我翻译,所以只记录原文和译文链接,请点击查看。

要完成一个内容提供者你需要遵循以下步骤:
1. extends ConcentePrivoder
2. 提供一个数据库的连接工具类MySQLiteHelper
3. 定义我们的主号码和分机号

原文链接
译文链接
全部章节请关注此文集C4教程翻译

代码中有Perosn的bean类没写出来,自定义的数据库里面含有person表

联军情报的主要提供者

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权。

这篇代码提供了对自定义的一个SQLite数据库的表person中增删改查

俄国照会 一八六○年二月十五日

public class PersonContentPrivoder extends ContentProvider
{

………… 值此准备派遣旨在自中国政府取得赔偿的远征军之际,我们相信阐明我国全权代表奉命采取的态度是有利并符合我们与土伊勒利和圣杰姆宫之间的友好关系的。 一当伊格纳切也夫少将结束尚使他逗留在北京的谈判,他即前往北塘,在那里他将拥有一艘俄国战舰,并乘舰列阵于北直隶湾英、法舰队之旁。和一八五八年普提雅廷伯爵海军上将一样,伊格纳切也夫少将也将力求避免在任何情况下卷入一旦发生的战斗。他的角色仅限于扮演一个心平气和的见证人,而不进行任何干涉,只有在他被要求提供友好的外交上的协助时才作例外。 ………… 科尔迪埃:《一八六○年中国之征》,第一二一页。 蒙特贝洛公爵先生致函图弗纳尔〔一〕先生阁下 圣彼得堡一八六○年二月十五日 ………… 哥尔查柯夫亲王业已收到去年十二月三日发自北京的消息。伊格纳切也夫将军报导说,皇帝在十五天够危险的疾病后已返回京城。…… ………… ……阁下知道,圣彼得堡内阁为了避免一切误会,已命令它驻北京的公使一当联军出现于白河,即行离开该城,前往北塘等候他的那条汽船上去。 业已训令他

  private MySQLLiteHelper helper = null;

< 1 > < 2 >

  //uriMatcher 工厂

  private static UriMatcher uriMatcher = null;

  private static final String AURHORITH = "包名.类名"; // 这个就是主号码

  private static final int PERSON_INSERT_CODE = 0;

  private static final int PERSON_UPDATE_CODE = 1;

  private static final int PERSON_DELETE_CODE = 2;

  private static final int PERSON_QUERY_CODE = 3;

  static{

    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);//参数就是分机号

    //添加插入的分机号

    //访问地址:content://包名.类名/person/insert

    uriMatcher.addURI(AURHORITH, "person/insert", PERSON_INSERT_CODE);

    //更新插入的分机号

    //访问地址:content://包名.类名/person/update

    uriMatcher.addURI(AURHORITH, "person/update", PERSON_UPDATE_CODE);

    //删除的分机号

恒大彩票登录,    //访问地址:content://包名.类名/person/delete

    uriMatcher.addURI(AURHORITH, "person/delete", PERSON_DELETE_CODE);

    //查询的分机号

    //访问地址:content://包名.类名/person/query

    uriMatcher.addURI(AURHORITH, "person/query", PERSON_QUERY_CODE);

  }

  //在内容提供者创建的时候初始化我们的数据库工具类

  @Override
  public boolean onCreate() {

    helper = new MySQLiteHelper(getContext(), null, null, -1);//自定义的一个数据库工具类,以及在工具类里面写死了名字和版本号

    return false;

  }

  @Override
  public Cursor query(Uri uri, String[] projection, String selection,

  String[] selectionArgs, String sortOrder) {

    switch (uriMatcher.match(uri)) {

      case PERSON_QUERY_CODE:

        SQLiteDatabase db = helper.getWritableDatabase();

        if(db.isOpen())

        {

           Cursor cursor = db.query("person", projection, selection, selectionArgs, null, null, sortOrder);

  

           // db.close(); // 不能关掉数据库否者访问不到数据

           return cursor;

        }

  

        break;

      default:

        throw new IllegalArgumentException("参数错误 :" + uri); //匹配不上的时候抛出异常提醒uri传递错误

      }

    return null;

  }

  //由系统调用,所以我们一般不会重写他

  @Override
  public String getType(Uri uri) {

    return null;

  }

  //inert方法提供真实的服务

  @Override
  public Uri insert(Uri uri, ContentValues values) {

    //访问地址:content://包名.类名/person/query

    //返回一个uri类型的数据 一般我们就将就访问地址,然后在地址后面追加添加成功以后返回的id

    switch (uriMatcher.match(uri)) {

    case PERSON_INSERT_CODE:

      SQLiteDatabase db = helper.getWritableDatabase();

      if(db.isOpen())

      {

        long id = db.insert("person", null, values);

        db.close();

        return ContentUris.withAppendedId(uri, id);

      }

      break;

    default:

      throw new IllegalArgumentException("参数错误 :" + uri); //匹配不上的时候抛出异常提醒uri传递错误

    }

    return null;

  }

  @Override
  public int delete(Uri uri, String selection, String[] selectionArgs) {

  switch (uriMatcher.match(uri)) {

    case PERSON_DELETE_CODE:

    SQLiteDatabase db = helper.getWritableDatabase();

    if(db.isOpen())

    {

      int id = db.delete("person", selection, selectionArgs);

      db.close();

      return id;

    }

     break;

    default:

      throw new IllegalArgumentException("参数错误 :" + uri); //匹配不上的时候抛出异常提醒uri传递错误

    }

    return 0;

  }

  @Override
  public int update(Uri uri, ContentValues values, String selection,

  String[] selectionArgs) {

    switch (uriMatcher.match(uri)) {

      case PERSON_UPDATE_CODE:

        SQLiteDatabase db = helper.getWritableDatabase();

        if(db.isOpen())

        {

          int id = db.update("person", values, selection, selectionArgs);

          db.close();

          return id;

        }

        break;

      default:

      throw new IllegalArgumentException("参数错误 :" + uri); //匹配不上的时候抛出异常提醒uri传递错误

    }

    return 0;

  }

}

<!-- xml中定义权限 -->
<permission
  android:name="aaa.bbb.ccc"
></permission>
<permission

  android:name="aaa.bbb.ccc.ddd"
></permission>

 

<!-- 写contentpriverder 必须要在主xml文件中application里面申明 -->
<provider
  android:name="包名.类名"

  android:authorities="包名.类名“

  android:readPermission="aaa.bbb.ccc"//自定义的权限

  android:writePermission="aaa.bbb.ccc.ddd"
></provider>

 

本文由恒大彩票登录发布于历史 / 中国史,转载请注明出处:【恒大彩票登录】第 6 章:星座提供者

关键词: