A程序:
UserInfo.java
package com.android.xiong.conentprovidertesta;
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 FirstContentProvider extends ContentProvider {
// UriMatcher类主要用来匹配Uri
private static final UriMatcher uriMatcher = new UriMatcher(
UriMatcher.NO_MATCH);
private MySqlite mysqlite;
static {
// 注册向外部程序提供的Uri
uriMatcher.addURI(UserInfo.AUTOR, "userinfo", 1);
uriMatcher.addURI(UserInfo.AUTOR, "userinfoall", 2);
}
//删除数据
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
int number = 0;
if (uriMatcher.match(uri) == 1) {
// 根据条件删除数据,并获取删除的行数
number = mysqlite.getReadableDatabase().delete("user_info",
selection, selectionArgs);
}
// 通知数据已经改变
getContext().getContentResolver().notifyChange(uri, null);
return number;
}
@Override
public String getType(Uri uri) {
return null;
}
//插入数据
@Override
public Uri insert(Uri uri, ContentValues values) {
String name = values.getAsString(UserInfo.User.NAME).toString();
String age = values.getAsInteger(UserInfo.User.AGE).toString();
String maxId = "select max(id) id from user_info";
Cursor cursor = mysqlite.getReadableDatabase().rawQuery(maxId, null);
cursor.moveToFirst();
int userid = cursor.getInt(0) + 1;
if (uriMatcher.match(uri) == 1) {
mysqlite.getWritableDatabase().execSQL(
"insert into user_info values(?,?,?)",
new String[] { String.valueOf(userid), name, age });
}
return uri;
}
// 连接数据库
@Override
public boolean onCreate() {
mysqlite = new MySqlite(getContext(), "userinfo.db", null, 1);
return true;
}
//查询数据
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteDatabase sqlite = mysqlite.getReadableDatabase();
String str = "select name,age from user_info";
if (uriMatcher.match(uri) == 1) {
str += " where " + selection;
}
Cursor cursor = sqlite.rawQuery(str, selectionArgs);
return cursor;
}
//修改数据
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
SQLiteDatabase sqlite = mysqlite.getReadableDatabase();
int number = 0;
if (uriMatcher.match(uri) == 1) {
number = sqlite.update("user_info", values, selection,
selectionArgs);
}
return number;
}
}











