package com.example.mycontentprovider;
import android.content.UriMatcher;
import android.net.Uri;
import android.provider.BaseColumns;
public class ContentDate {
public static final String AUTHORITY = "com.example.mycontentprovider";
public static final String DATABASE_NAME = "teacher.db";
public static final int DATABASE_VERSION = 4;
public static final String USERAS_TABLE_NAME = "teacher";
public static final class UserTableData implements BaseColumns{
public static final String TABLE_NAME = "teacher";
public static final Uri CONTENT_URI = Uri.parse("content://"+AUTHORITY+"/teacher");
public static final int TEACHERS = 1;
public static final int TEACHER = 2;
public static final String TITLE = "title";
public static final String NAME = "name";
public static final String DATA_ADDED = "data_added";
public static final String SEX = "sex";
public static final String DEFAULT_SORT_ORDER = "_id desc";
}
}
package com.example.mycontentprovider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Build.VERSION;
public class DbOpenHelper extends SQLiteOpenHelper{
public DbOpenHelper(Context context, String name,CursorFactory factory, int version){
super(context,name,factory,version);
}
public DbOpenHelper(Context context, String name, int version){
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL( "create table " + ContentDate.USERAS_TABLE_NAME + "("
+ContentDate.UserTableData._ID + " INTEGER PRIMARY KEY autoincrement,"
+ContentDate.UserTableData.NAME + "varchar(20),");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
package com.example.mycontentprovider;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button mBtn_insert;
private Button mBtn_query;
private Button mBtn_query_all;
private Button mBtn_update;
private Button mBtn_delete;
Uri uri_teacher = Uri.parse("content://com.example.mycontentprovider/teacher");
Uri uri_teachers = Uri.parse("content://com.example.mycontentprovider/teachers");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtn_insert = (Button) findViewById(R.id.btn_insert);
mBtn_query = (Button) findViewById(R.id.btn_query);
mBtn_query_all = (Button) findViewById(R.id.btn_query_all);
mBtn_update = (Button) findViewById(R.id.btn_update);
mBtn_delete = (Button) findViewById(R.id.btn_delete);
mBtn_insert.setOnClickListener(new InsertListener());
mBtn_query_all.setOnClickListener(new QueryListener());
mBtn_query.setOnClickListener(new QueryListener());
mBtn_update.setOnClickListener(new UpdateInstener());
mBtn_delete.setOnClickListener(new DeleteInstener());
}
class InsertListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
ContentValues cv = new ContentValues();
cv.put("title", "教授");
cv.put("sex", true);
cv.put("name", "小明");
Uri uri = cr.insert(uri_teachers, cv);
System.out.println(uri.toString());
}
}
class QueryAllListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
Cursor c = cr.query(uri_teacher, null, "_ID=?", new String[]{" 1 "}, null);
if(c.moveToFirst() == false){
return ;
}
int i = c.getColumnIndex("name");
System.out.println(c.getString(i));
c.close();
}
}
class QueryListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
Cursor c =cr.query(uri_teacher, null, null, null, null);
System.out.println(c.getCount());
}
}
class UpdateInstener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
ContentValues cv = new ContentValues();
cv.put("name", "小猪");
String where = "_ID=?";
int update_number = cr.update(uri_teacher, cv, where, new String[] { "3" });
System.out.println("updated"+":"+update_number);
}
}
class DeleteInstener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
String where = "_ID=?";
int delete_number = cr.delete(uri_teacher, where, new String []{" 1 "});
System.out.println("delete_number" + delete_number);
}
}
}
package com.example.mycontentprovider;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.PeriodicSync;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.text.TextUtils;
public class TeacherContentProvider extends ContentProvider{
private DbOpenHelper dbopenhelper = null ;
public static final UriMatcher urimatcher;
static {
urimatcher = new UriMatcher(UriMatcher.NO_MATCH);
urimatcher.addURI(ContentDate.AUTHORITY, "teacher", ContentDate.UserTableData.TEACHERS);
urimatcher.addURI(ContentDate.AUTHORITY, "teacher/#", ContentDate.UserTableData.TEACHER);
}
@Override
public boolean onCreate() {
// TODO Auto-generated method stub
dbopenhelper = new DbOpenHelper(this.getContext(), ContentDate.DATABASE_NAME, ContentDate.DATABASE_VERSION);
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbopenhelper.getReadableDatabase();
int count = 0;
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
return db.query(ContentDate.UserTableData.TABLE_NAME, projection, selection, selectionArgs, null, null, null);
case ContentDate.UserTableData.TEACHER:
long personId;
personId = ContentUris.parseId(uri);
String where = "_ID=" + personId;
where += !TextUtils.isEmpty(selection) ? " and (" + selection + ")" : "";
return db.query(ContentDate.UserTableData.TABLE_NAME, projection, where, null, null, null, sortOrder);
default:
throw new IllegalArgumentException();
}
}
@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbopenhelper.getWritableDatabase();
long id = 0 ;
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
id = db.insert(ContentDate.UserTableData.TABLE_NAME, null, values);
return ContentUris.withAppendedId(uri, id);
case ContentDate.UserTableData.TEACHER:
id = db.insert(ContentDate.UserTableData.TABLE_NAME, null, values);
String path = uri.toString();
return Uri.parse(path.substring(0, path.lastIndexOf("/"))+ id);
default:
throw new IllegalArgumentException("Unknown_URI123" + uri);
}
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
int count ;
SQLiteDatabase db = dbopenhelper.getWritableDatabase();
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
db.delete(ContentDate.UserTableData.TABLE_NAME, selection, selectionArgs);
break;
case ContentDate.UserTableData.TEACHER:
long personId = ContentUris.parseId(uri);
String where = "_ID=" + personId;
where += !TextUtils.isEmpty(selection) ? " and (" + selection + ")" : "";
count = db.delete(ContentDate.UserTableData.TABLE_NAME, where, selectionArgs);
break;
default:
throw new IllegalArgumentException();
}
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbopenhelper.getWritableDatabase();
int count = 0;
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
count = db.update(ContentDate.UserTableData.TABLE_NAME, values, selection, selectionArgs);
break;
case ContentDate.UserTableData.TEACHER:
long personId = ContentUris.parseId(uri);
String where = "_ID=" + personId;
where += !TextUtils.isEmpty(selection) ? " and (" + selection + ")" : "";
count = db.update(ContentDate.UserTableData.TABLE_NAME, values, where, selectionArgs);
break;
default:
throw new IllegalArgumentException();
}
db.close();
return count;
}
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}
}
import android.content.UriMatcher;
import android.net.Uri;
import android.provider.BaseColumns;
public class ContentDate {
public static final String AUTHORITY = "com.example.mycontentprovider";
public static final String DATABASE_NAME = "teacher.db";
public static final int DATABASE_VERSION = 4;
public static final String USERAS_TABLE_NAME = "teacher";
public static final class UserTableData implements BaseColumns{
public static final String TABLE_NAME = "teacher";
public static final Uri CONTENT_URI = Uri.parse("content://"+AUTHORITY+"/teacher");
public static final int TEACHERS = 1;
public static final int TEACHER = 2;
public static final String TITLE = "title";
public static final String NAME = "name";
public static final String DATA_ADDED = "data_added";
public static final String SEX = "sex";
public static final String DEFAULT_SORT_ORDER = "_id desc";
}
}
package com.example.mycontentprovider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Build.VERSION;
public class DbOpenHelper extends SQLiteOpenHelper{
public DbOpenHelper(Context context, String name,CursorFactory factory, int version){
super(context,name,factory,version);
}
public DbOpenHelper(Context context, String name, int version){
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL( "create table " + ContentDate.USERAS_TABLE_NAME + "("
+ContentDate.UserTableData._ID + " INTEGER PRIMARY KEY autoincrement,"
+ContentDate.UserTableData.NAME + "varchar(20),");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
package com.example.mycontentprovider;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button mBtn_insert;
private Button mBtn_query;
private Button mBtn_query_all;
private Button mBtn_update;
private Button mBtn_delete;
Uri uri_teacher = Uri.parse("content://com.example.mycontentprovider/teacher");
Uri uri_teachers = Uri.parse("content://com.example.mycontentprovider/teachers");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtn_insert = (Button) findViewById(R.id.btn_insert);
mBtn_query = (Button) findViewById(R.id.btn_query);
mBtn_query_all = (Button) findViewById(R.id.btn_query_all);
mBtn_update = (Button) findViewById(R.id.btn_update);
mBtn_delete = (Button) findViewById(R.id.btn_delete);
mBtn_insert.setOnClickListener(new InsertListener());
mBtn_query_all.setOnClickListener(new QueryListener());
mBtn_query.setOnClickListener(new QueryListener());
mBtn_update.setOnClickListener(new UpdateInstener());
mBtn_delete.setOnClickListener(new DeleteInstener());
}
class InsertListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
ContentValues cv = new ContentValues();
cv.put("title", "教授");
cv.put("sex", true);
cv.put("name", "小明");
Uri uri = cr.insert(uri_teachers, cv);
System.out.println(uri.toString());
}
}
class QueryAllListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
Cursor c = cr.query(uri_teacher, null, "_ID=?", new String[]{" 1 "}, null);
if(c.moveToFirst() == false){
return ;
}
int i = c.getColumnIndex("name");
System.out.println(c.getString(i));
c.close();
}
}
class QueryListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
Cursor c =cr.query(uri_teacher, null, null, null, null);
System.out.println(c.getCount());
}
}
class UpdateInstener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
ContentValues cv = new ContentValues();
cv.put("name", "小猪");
String where = "_ID=?";
int update_number = cr.update(uri_teacher, cv, where, new String[] { "3" });
System.out.println("updated"+":"+update_number);
}
}
class DeleteInstener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
String where = "_ID=?";
int delete_number = cr.delete(uri_teacher, where, new String []{" 1 "});
System.out.println("delete_number" + delete_number);
}
}
}
package com.example.mycontentprovider;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.PeriodicSync;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.text.TextUtils;
public class TeacherContentProvider extends ContentProvider{
private DbOpenHelper dbopenhelper = null ;
public static final UriMatcher urimatcher;
static {
urimatcher = new UriMatcher(UriMatcher.NO_MATCH);
urimatcher.addURI(ContentDate.AUTHORITY, "teacher", ContentDate.UserTableData.TEACHERS);
urimatcher.addURI(ContentDate.AUTHORITY, "teacher/#", ContentDate.UserTableData.TEACHER);
}
@Override
public boolean onCreate() {
// TODO Auto-generated method stub
dbopenhelper = new DbOpenHelper(this.getContext(), ContentDate.DATABASE_NAME, ContentDate.DATABASE_VERSION);
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbopenhelper.getReadableDatabase();
int count = 0;
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
return db.query(ContentDate.UserTableData.TABLE_NAME, projection, selection, selectionArgs, null, null, null);
case ContentDate.UserTableData.TEACHER:
long personId;
personId = ContentUris.parseId(uri);
String where = "_ID=" + personId;
where += !TextUtils.isEmpty(selection) ? " and (" + selection + ")" : "";
return db.query(ContentDate.UserTableData.TABLE_NAME, projection, where, null, null, null, sortOrder);
default:
throw new IllegalArgumentException();
}
}
@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbopenhelper.getWritableDatabase();
long id = 0 ;
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
id = db.insert(ContentDate.UserTableData.TABLE_NAME, null, values);
return ContentUris.withAppendedId(uri, id);
case ContentDate.UserTableData.TEACHER:
id = db.insert(ContentDate.UserTableData.TABLE_NAME, null, values);
String path = uri.toString();
return Uri.parse(path.substring(0, path.lastIndexOf("/"))+ id);
default:
throw new IllegalArgumentException("Unknown_URI123" + uri);
}
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
int count ;
SQLiteDatabase db = dbopenhelper.getWritableDatabase();
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
db.delete(ContentDate.UserTableData.TABLE_NAME, selection, selectionArgs);
break;
case ContentDate.UserTableData.TEACHER:
long personId = ContentUris.parseId(uri);
String where = "_ID=" + personId;
where += !TextUtils.isEmpty(selection) ? " and (" + selection + ")" : "";
count = db.delete(ContentDate.UserTableData.TABLE_NAME, where, selectionArgs);
break;
default:
throw new IllegalArgumentException();
}
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbopenhelper.getWritableDatabase();
int count = 0;
switch (urimatcher.match(uri)) {
case ContentDate.UserTableData.TEACHERS:
count = db.update(ContentDate.UserTableData.TABLE_NAME, values, selection, selectionArgs);
break;
case ContentDate.UserTableData.TEACHER:
long personId = ContentUris.parseId(uri);
String where = "_ID=" + personId;
where += !TextUtils.isEmpty(selection) ? " and (" + selection + ")" : "";
count = db.update(ContentDate.UserTableData.TABLE_NAME, values, where, selectionArgs);
break;
default:
throw new IllegalArgumentException();
}
db.close();
return count;
}
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}
}