1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | package com.example.android.provider02; import android.content.ContentProvider; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; public class TestProvider extends ContentProvider { //SQLiteOpenHelper-建立資料庫TaxiCarDB和Table:Users private static class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "TaxiDB"; private static final int DATABASE_VERSION = 1; //建立PhoneContentDB資料庫 private DatabaseHelper(Context ctx) { super(ctx, DATABASE_NAME, null, DATABASE_VERSION); } //建立Users表單 @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + UserSchema.TABLE_NAME + " (" + UserSchema.ID + " INTEGER primary key autoincrement, " + UserSchema.USER_NAME + " text not null, " + UserSchema.VENDOR + " text not null, " + UserSchema.TELEPHONE + " text not null, " + UserSchema.VIP + " text not null, " + UserSchema.STATUS + " text not null, " + UserSchema.NUMBER + " text not null "+ ");"; db.execSQL(sql); } //更新新版本 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS test"); onCreate(db); } } //定義DatabaseHelper類別變數 databaseHelper static DatabaseHelper databaseHelper; //實作Content Providers的onCreate() @Override public boolean onCreate() { databaseHelper = new DatabaseHelper(getContext()); return true; } public interface UserSchema { String TABLE_NAME = "Taxi"; //計程車名單資料庫 String ID = "_ID"; //編號 String USER_NAME = "_Name"; //姓名 String VENDOR = "_Vendor"; //計程車業者 String TELEPHONE = "_Phone"; //手機號碼 String VIP = "_vip"; //VIP(是或否) String STATUS = "_Status"; //狀態(空車或滿車) String NUMBER = "_Number"; //車號 } //實作Content Providers的insert() @Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.insert(UserSchema.TABLE_NAME, null, values); db.close(); return null; } //實作Content Providers的query() @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.update(UserSchema.TABLE_NAME, values, selection ,null); db.close(); return 0; } //實作Content Providers的delete() @Override public int delete(Uri uri, String selection, String[] selectionArgs) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.delete(UserSchema.TABLE_NAME, selection ,null); db.close(); return 0; } //實作Content Providers的update() @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { SQLiteDatabase db = databaseHelper.getReadableDatabase(); SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); qb.setTables(UserSchema.TABLE_NAME); Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, null); return c; } //實作Content Providers的getType() @Override public String getType(Uri uri) { // TODO Auto-generated method stub return null; } } |
Direct link: https://paste.plurk.com/show/588018