package com.example.domain;public class Person {private int id;private String name;public Person() {super();}public Person(int personid, String name) {this.id = personid;this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


package com.example.service;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.example.domain.Person;public class PersonService {private DBOpenHelper dbOpenHelper;//private Context context;public PersonService(Context context) {this.dbOpenHelper = new DBOpenHelper(context);}public void save(Person person) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("insert into person (name) values (?)",new Object[] { person.getName() });}public void update(Person person) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("update person set name=? where personid=?", new Object[] {person.getName(), person.getId() });}public void delete(Integer id) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("delete from person where personid=?",new Object[] { id.toString() });}public Person find(Integer id) {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from person where personid=?",new String[] { id.toString() });if (cursor.moveToFirst()) {int personid = cursor.getInt(cursor.getColumnIndex("personid"));String name = cursor.getString(cursor.getColumnIndex("personid"));return new Person(personid, name);}return null;}public List<Person> getScrollDate(Integer offset, Integer maxResult) {List<Person> persons = new ArrayList<Person>();SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select * from person limit ?,?",new String[] { offset.toString(), maxResult.toString() });while (cursor.moveToNext()) {int personid = cursor.getInt(cursor.getColumnIndex("personid"));String name = cursor.getString(cursor.getColumnIndex("personid"));Person person = new Person(personid, name);persons.add(person);}cursor.close();return persons;}public long getCount() {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select count(*) from person ", null);cursor.moveToFirst();return cursor.getLong(0);}}


package com.example.service;import java.util.ArrayList;import java.util.List;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.example.domain.Person;public class OtherPersonService {private DBOpenHelper dbOpenHelper;public OtherPersonService(Context context) {this.dbOpenHelper = new DBOpenHelper(context);}public void save(Person person) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", person.getName());db.insert("person", null, values);}public void update(Person person) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", person.getName());db.update("person", values, "personid=?", new String[] { (new Integer(person.getId())).toString() });}public void delete(Integer id) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.delete("person", "personid=?", new String[] { id.toString() });}public Person find(Integer id) {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.query("person", new String[] { "personid", "name" },"personid=?", new String[] { id.toString() }, null, null, null);if (cursor.moveToFirst()) {int personid = cursor.getInt(cursor.getColumnIndex("personid"));String name = cursor.getString(cursor.getColumnIndex("personid"));return new Person(personid, name);}return null;}public List<Person> getScrollDate(Integer offset, Integer maxResult) {List<Person> persons = new ArrayList<Person>();SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.query("person", null, null, null, null, null, null,offset + "," + maxResult);while (cursor.moveToNext()) {int personid = cursor.getInt(cursor.getColumnIndex("personid"));String name = cursor.getString(cursor.getColumnIndex("personid"));Person person = new Person(personid, name);persons.add(person);}cursor.close();return persons;}public long getCount() {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.query("person", new String[] { "count(*)" }, null,null, null, null, null);cursor.moveToFirst();return cursor.getLong(0);}}


package com.example.service;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBOpenHelper extends SQLiteOpenHelper {private static String databasename = "datatemp";private static int databaseversion = 1;public DBOpenHelper(Context context) {super(context, databasename, null, databaseversion);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE IF NOT EXISTS person (personid integer primary key autoincrement, name varchar(20))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {}}

package com.example.db;import com.example.service.DBOpenHelper;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.net.Uri;public class PersonProvider extends ContentProvider {private DBOpenHelper dbOpenHelper;private static final UriMatcher MATCHER = new UriMatcher(UriMatcher.NO_MATCH);private static final int PERSONS = 1;private static final int PERSON = 2;static {MATCHER.addURI("org.provider", "person", PERSONS);MATCHER.addURI("org.provider", "person/#", PERSON);}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();int count = 0;switch (MATCHER.match(uri)) {case PERSONS:count = db.delete("person", selection, selectionArgs);return count;case PERSON:long id = ContentUris.parseId(uri);String where = "personid=" + id;if (selection != null && !"".equals(selection)) {where = selection + "and" + where;}count = db.delete("person", where, selectionArgs);return count;default:throw new IllegalArgumentException("Unknown Uri" + uri.toString());}}@Overridepublic String getType(Uri uri) {switch (MATCHER.match(uri)) {case PERSONS:return "vnd.android.curson.dir/person";case PERSON:return "vnd.android.curson.item/person";default:throw new IllegalArgumentException("Unknown Uri" + uri.toString());}}@Overridepublic Uri insert(Uri uri, ContentValues values) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();switch (MATCHER.match(uri)) {case PERSONS:long rowid = db.insert("person", "personid", values);Uri insertUri = ContentUris.withAppendedId(uri, rowid);return insertUri;default:throw new IllegalArgumentException("Unknown Uri" + uri.toString());}}@Overridepublic boolean onCreate() {this.dbOpenHelper = new DBOpenHelper(this.getContext());return false;}@Overridepublic Cursor query(Uri uri, String[] columns, String selection,String[] selectionArgs, String sortOrder) {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();switch (MATCHER.match(uri)) {case PERSONS:return db.query("person", columns, selection, selectionArgs, null,null, sortOrder);case PERSON:long id = ContentUris.parseId(uri);String where = "personid=" + id;if (selection != null && !"".equals(selection)) {where = selection + "and" + where;}return db.query("person", columns, where, selectionArgs, null,null, sortOrder);default:throw new IllegalArgumentException("Unknown Uri" + uri.toString());}}@Overridepublic int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();int count = 0;switch (MATCHER.match(uri)) {case PERSONS:count = db.update("person", values, selection, selectionArgs);return count;case PERSON:long id = ContentUris.parseId(uri);String where = "personid=" + id;if (selection != null && !"".equals(selection)) {where = selection + "and" + where;}count = db.update("person", values, where, selectionArgs);return count;default:throw new IllegalArgumentException("Unknown Uri" + uri.toString());}}}/* =============================Adroid JUnit test ContentProvider;public class AccessContentProvider extends AndroidTestCase {public void testInsert() throws Throwable {private static final String TAG = "AccessContentProvider";ContentResolver contentResolver = this.getContext().getContentResolver();Uri insertUri = Uri.parse("content://org.provider/person");ContentValues values = new ContentValues();values.put("name", "xiaosan");values.put("amount", 90);Uri uri = contentResolver.insert(insertUri, values);Log.i(TAG, uri.toString());}public void testUpdate() throws Throwable {ContentResolver contentResolver = this.getContext().getContentResolver();Uri updateUri = Uri.parse("content://org.provider/person/1");ContentValues values = new ContentValues();values.put("name", "xiaosan");values.put("amount", 90);contentResolver.update(updateUri, values, null, null);}public void testSelect() throws Throwable {ContentResolver contentResolver = this.getContext().getContentResolver();Uri selectUri = Uri.parse("content://org.provider/person");Cursor cursor = contentResolver.query(selectUri, null, null, null,"personid desc");while (cursor.moveToNext()) {int id = cursor.getInt(cursor.getColumnIndex("personid"));String name = cursor.getString(cursor.getColumnIndex("name"));int amount = cursor.getInt(cursor.getColumnIndex("amount"));Log.i(TAG, "id" + id + ",name" + name + ",amount" + amount);}}public void testDelete() throws Throwable {ContentResolver contentResolver = this.getContext().getContentResolver();Uri deleteUri = Uri.parse("content://org.provider/person/1");contentResolver.detele(deleteUri, null, null);}}// <provider android:name="com.example.db.PersonProvider"// android:authorities="org.provider"/>// this.getContext().getContentResolver().notifyChange(uri,null);=================================== */



更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android(安卓)RelativeLayout布局
  2. Android中Spinner下拉列表(使用ArrayAdapt
  3. Android(安卓)简单存储 SharedPreference
  4. Android与JS交互之基本
  5. 使用MediaPlayer播放声音的异常
  6. android onSaveInstanceState方法
  7. Android动画-Interpolator(插值器)大全
  8. 答复: Android中使用硬盘模拟SD卡
  9. Android三种定时器的简单使用
  10. 【Android】数据存储之Sharepreference