Android组件系列----ContentProvider内容提供者

【Android组件系列----ContentProvider内容提供者】生也有涯,知也无涯。这篇文章主要讲述Android组件系列----ContentProvider内容提供者相关的知识,希望能为你提供帮助。
二、代码举例:
终于全部project文件的文件夹结构例如以下:

Android组件系列----ContentProvider内容提供者

文章图片

PersonDao是增删改查数据库的工具类,并在PersonContentProvider中得到调用。DBHelper用于初始化SQLite数据库。

PersonContentProvider用于向外提供增删改查的接口。并终于在ContentResolverTest的Test.java中进行单元測试,实现CRUD。
以下来看一下详细的实现步骤。
新建project文件ContetProviderTest01。
(1)新建类PersonDao:用于进行对SQLite的CRUD操作。代码例如以下:
PersonDao.java:
Android组件系列----ContentProvider内容提供者

文章图片
1 package com.example.contentprovidertest01.dao; 2 3 import android.content.ContentValues; 4 import android.content.Context; 5 import android.database.Cursor; 6 import android.database.sqlite.SQLiteDatabase; 7 8 import com.example.contentprovidertest01.db.DBHelper; 9 10 public class PersonDao { 11private DBHelper helper = null; 12 13public PersonDao(Context context) { 14helper = new DBHelper(context); 15} 16 17//方法:插入操作,返回的long类型为:插入当前行的行号 18public long insertPerson(ContentValues values) { 19long id = -1; 20SQLiteDatabase database = null; 21try { 22database = helper.getWritableDatabase(); 23id = database.insert("person", null, values); 24} catch (Exception e) { 25e.printStackTrace(); 26} finally { 27if (database != null) { 28database.close(); 29} 30} 31return id; 32} 33 34public int deletePerson(String whereClause, String[] whereArgs) { 35int count = -1; 36SQLiteDatabase database = null; 37try { 38database = helper.getWritableDatabase(); 39count = database.delete("person", whereClause, whereArgs); 40} catch (Exception e) { 41e.printStackTrace(); 42} finally { 43if (database != null) { 44database.close(); 45} 46} 47return count; 48} 49 50public int updatePerson(ContentValues values, String whereClause, 51String[] whereArgs) { 52SQLiteDatabase database = null; 53int count = -1; 54try { 55database = helper.getWritableDatabase(); 56count = database.update("person", values, whereClause, whereArgs); 57} catch (Exception e) { 58e.printStackTrace(); 59} finally { 60if (null != database) { 61database.close(); 62} 63} 64return count; 65} 66 67public Cursor queryPersons(String selection, String[] selectionArgs) { 68SQLiteDatabase database = null; 69Cursor cursor = null; 70try { 71database = helper.getReadableDatabase(); 72cursor = database.query(true, "person", null, selection, 73selectionArgs, null, null, null, null); 74} catch (Exception e) { 75e.printStackTrace(); 76} finally { 77if (null != database) { 78// database.close(); 79} 80} 81return cursor; 82} 83 84 }

Android组件系列----ContentProvider内容提供者

文章图片

    推荐阅读