package com.example.hellocontentprovider;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
public class HelloContentProvider extends ContentProvider{
private static final UriMatcher um = new UriMatcher(UriMatcher.NO_MATCH); // match:匹配
private SQLiteDatabase sqLite; //成员变量 数据库
@Override
public int delete(Uri arg0, String arg1, String[] arg2) {
// TODO Auto-generated method stub
return 0;
}
@Override
public String getType(Uri arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public Uri insert(Uri arg0, ContentValues arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean onCreate() {
//设置匹配字符串
um.addURI("com.example.hellocontentprovider.provider.books", "book", 1);
//创建数据库 数据库名为 shenshendb
sqLite = SQLiteDatabase.openDatabase("/data/data/com.example.hellocontentprovider/shenshendb", null,
SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY);
//打开 读写 创建必须的
//创建名称为“books”表 并创建了id(自增长)和 bookname 两列;
sqLite.execSQL("create table books ([id] integer primary key autoincrement not null, [bookname] varchar(30) not null)");
//创建名字为 books 的表,它的id为整数并且主要关键key自动增量, varchar:字符数据
ContentValues cv = new ContentValues(); //键值对实例
cv.put("bookname", "第一本书的名字");
sqLite.insert("books", null, cv);
//表名称
return false;
}
@Override
public Cursor query(Uri arg0, String[] arg1, String arg2, String[] arg3,
String arg4) {
if(um.match(arg0) == 1){ //当匹配的第一个参数等于1时 执行下面
Cursor cursor = sqLite.query("books", null, null, null, null, null, null);//第一个参数是表名,后面的参数都是关于筛选条件以及排序等
return cursor;
}else{
return null;
}
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
if(um.match(uri) == 1){
int result = sqLite.update("book", values, null, null);
return result;
}
return 0;
}
}
在AndroidManifest.xml
<provider
<span style="white-space:pre"> </span>android:name=".HelloContentProvider"
android:authorities="com.example.hellocontentprovider.provider.books" >
</provider>