首页>代码>Android开源无线点菜系统源代码下载>/无线点餐/WirelessOrder_Client/src/com/amaker/provider/TableProvider.java
package com.amaker.provider;

import java.util.HashMap;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.text.TextUtils;

public class TableProvider extends ContentProvider{
	// 数据库帮助类
	private DBHelper dbHelper;
    // Uri工具类
    private static final UriMatcher sUriMatcher;
    // 查询、更新条件
    private static final int TABLES = 1;
    private static final int TABLES_ID = 2;
    // 查询列集合
    private static HashMap<String, String> tblProjectionMap;
    static {
    	// Uri匹配工具类
        sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        sUriMatcher.addURI(Tables.AUTHORITY, "table", TABLES);
        sUriMatcher.addURI(Tables.AUTHORITY, "table/#", TABLES_ID);
        // 实例化查询列集合
        tblProjectionMap = new HashMap<String, String>();
        // 添加查询列
        tblProjectionMap.put(Tables._ID, Tables._ID);
        tblProjectionMap.put(Tables.NUM, Tables.NUM);
        tblProjectionMap.put(Tables.DESCRIPTION,Tables.DESCRIPTION);
    }

	// 创建是调用
	public boolean onCreate() {
		// 实例化数据库帮助类
		dbHelper = new DBHelper(getContext());
		return true;
	}
	// 添加方法
	public Uri insert(Uri uri, ContentValues values) {
		// 获得数据库实例
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		// 插入数据,返回行ID
		long rowId = db.insert(DBHelper.TABLES_TABLE_NAME,Tables.NUM, values);
		// 如果插入成功返回uri
        if (rowId > 0) {
            Uri empUri = ContentUris.withAppendedId(Tables.CONTENT_URI, rowId);
            getContext().getContentResolver().notifyChange(empUri, null);
            return empUri;
        }
		return null;
	}
	

	// 获得类型
	public String getType(Uri uri) {
		return null;
	}

	// 查询方法
	public Cursor query(Uri uri, String[] projection, String selection,
			String[] selectionArgs, String sortOrder) {
		 SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
	        switch (sUriMatcher.match(uri)) {
	        // 查询所有
	        case TABLES:
	            qb.setTables(DBHelper.TABLES_TABLE_NAME);
	            qb.setProjectionMap(tblProjectionMap);
	            break;
	        // 根据ID查询
	        case TABLES_ID:
	            qb.setTables(DBHelper.TABLES_TABLE_NAME);
	            qb.setProjectionMap(tblProjectionMap);
	            qb.appendWhere(Tables._ID + "=" + uri.getPathSegments().get(1));
	            break;
	        default:
	            throw new IllegalArgumentException("Uri错误! " + uri);
	        }

	        // 使用默认排序
	        String orderBy;
	        if (TextUtils.isEmpty(sortOrder)) {
	            orderBy = Tables.DEFAULT_SORT_ORDER;
	        } else {
	            orderBy = sortOrder;
	        }

	        // 获得数据库实例
	        SQLiteDatabase db = dbHelper.getReadableDatabase();
	        // 返回游标集合
	        Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, orderBy);
	        c.setNotificationUri(getContext().getContentResolver(), uri);
	        return c;
	}
	
	@Override
	public int delete(Uri uri, String selection, String[] selectionArgs) {
		
		return 0;
	}
	@Override
	public int update(Uri uri, ContentValues values, String selection,
			String[] selectionArgs) {
		return 0;
	}
}
最近下载更多
yigu123  LV6 10月25日
2636804923  LV6 6月20日
求学的熊猫  LV11 3月25日
yyyyyyzh  LV8 2023年6月11日
Time-wang  LV5 2022年5月30日
微信网友_5970230176714752  LV2 2022年5月23日
bingpine  LV6 2022年5月11日
dasdascccf  LV10 2021年12月23日
廖业贵  LV18 2021年12月1日
凡先生  LV19 2021年11月28日
最近浏览更多
yigu123  LV6 10月25日
2636804923  LV6 6月20日
咩咩咩咩咩  LV2 6月17日
AIWU1234  LV2 6月9日
来一杯西瓜冰咩  LV6 6月4日
yuanyuan23  LV1 5月30日
lilitu  LV6 5月29日
今晚都别睡啦  LV9 5月29日
2793702367 5月25日
暂无贡献等级
求学的熊猫  LV11 3月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友