• android:SQLiteOpenHelper


    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);
    	}
    
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		db.execSQL("CREATE TABLE IF NOT EXISTS person (personid integer primary key autoincrement, name varchar(20))");
    	}
    
    	@Override
    	public 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);
    	}
    
    	@Override
    	public 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());
    		}
    	}
    
    	@Override
    	public 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());
    		}
    	}
    
    	@Override
    	public 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());
    		}
    	}
    
    	@Override
    	public boolean onCreate() {
    		this.dbOpenHelper = new DBOpenHelper(this.getContext());
    		return false;
    	}
    
    	@Override
    	public 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());
    		}
    	}
    
    	@Override
    	public 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);
    =================================== */
    



  • 相关阅读:
    AcWing 171. 送礼物
    AcWing 167. 木棒
    AcWing 166. 数独
    AcWing 168. 生日蛋糕
    AcWing 180 排书
    A*与IDA* 算法介绍
    AcWing 170. 加成序列[曾用名:加法链]
    AcWing 普通队列与循环队列写法
    AcWing 181. 回转游戏
    AcWing 1129. 热浪【单源最短路】
  • 原文地址:https://www.cnblogs.com/javafly/p/6037233.html
Copyright © 2020-2023  润新知