public class PersonService {
private DBOpenHelper dbOpenHelper;
public PersonService(Context context) {
super();
this.dbOpenHelper = new DBOpenHelper(context, 2);
}
public void save(Person person) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// SQLiteDatabase db2 = dbOpenHelper.getWritableDatabase();有缓存的功能,同一个Helper用此方法得到的对象为db;
db.execSQL("insert into person(name,phone) values(?,?)", new Object[] {person.getName(), person.getPhone() });
}
public void delete(Integer id) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
db.execSQL("delete from person where personid=?", new Object[] { id });
}
public void update(Person person) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
db.execSQL("update person set name=?,phone=? where personid=?",new Object[] { person.getName(), person.getPhone(),person.getId() });
}
public Person find(Integer id) {
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
// 如果数据库磁盘空间未满,得到的实例即为getWritableDatabase()得到的对象;因为此方法会调用getWritableDatabase方法;
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("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
return new Person(personid, name, phone);
}
cursor.close();
return null;
}
/*
* 获取分页数据
*/
public List getScollData(int offest, int maxResult) {
List persons = new ArrayList();
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from person order by personid asc limit ?,?",new String[] { String.valueOf(offest),String.valueOf(maxResult) });
while (cursor.moveToNext()) {
int personid = cursor.getInt(cursor.getColumnIndex("personid"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
persons.add(new Person(personid, name, phone));
}
cursor.close();
return persons;
}
public long getCount() {
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select count(*) from person", null);
cursor.moveToFirst();
long result = cursor.getLong(0);
return result;
}
}
public class OtherPersonService {
private DBOpenHelper dbOpenHelper;
public OtherPersonService(Context context) {
super();
this.dbOpenHelper = new DBOpenHelper(context, 2);
}
public void save(Person person) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();// ContentValues 专门用于保存字段的值
values.put("name", person.getName());
values.put("phone", person.getPhone());
db.insert("person", null, values);// 第三个参数为字段值,第二个参数为空值字段,如果第三个参数为null
}
public void delete(Integer id) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
db.delete("person", "personid=?", new String[] { id.toString() });
}
public void update(Person person) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", person.getName());
values.put("phone", person.getPhone());
db.update("person", values, "personid=?", new String[] { person.getId().toString() });
}
public Person find(Integer id) {
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor cursor = db.query("person", null, "personid=?",new String[] { id.toString() }, null, null, null);
if (cursor.moveToFirst()) {
int personid = cursor.getInt(cursor.getColumnIndex("personid"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
return new Person(personid, name, phone);
}
cursor.close();
return null;
}
/*
* 获取分页数据
*/
public List getScollData(int offest, int maxResult) {
List persons = new ArrayList();
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor cursor = db.query("person", null, null, null, null, null,"personid asc", offest + "," + maxResult);
//db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
while (cursor.moveToNext()) {
int personid = cursor.getInt(cursor.getColumnIndex("personid"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
persons.add(new Person(personid, name, phone));
}
cursor.close();
return persons;
}
public long getCount() {
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor cursor = db.query("person", new String[] { "count(*)" }, null, null, null, null, null);
//db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
cursor.moveToFirst();
long result = cursor.getLong(0);
return result;
}
}