android:SQLiteOpenHelper
2014-08-20 21:30
309 查看
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);
=================================== */
相关文章推荐
- Android SQLiteOpenHelper的使用心得
- android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加修改删除数据之联系人(二)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加检索操作(Retrieve)
- android数据库编程----SqLiteOpenHelper的使用
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —查询单条记录、修改
- android SQLite操作方法总结,SQLite用法,SQLiteOpenHelper
- Android中文API(139) —— SQLiteOpenHelper
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加数据(Create)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper)
- Android数据库编程:SqLiteOpenHelper的使用
- Android:SQLiteOpenHelper 学习笔记
- Android save pictrue by SQLiteOpenHelper
- Android应用开发---SQLiteOpenHelper管理SQLite数据库、ListView
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —删除数据
- 《二》Android 数据库 SQlite SQLiteOpenHelper
- android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加数据及显示(一)
- 【转】Android使用SQLiteOpenHelper对数据库进行版本管理【学习记录】
- Android如何使用SQLiteOpenHelper
- Android:SQLiteOpenHelper,SqliteDatabase学习
- Android--类--SQLiteOpenHelper使用示例--01