1.操作类
GoDB {
private Database database;
private SQLiteDatabase db;
public GoosunDB(Context context) {
super();
database = new Database(context);
}
public GoosunDB open() throws SQLException {
db = database.getWritableDatabase();
return this;
}
public void close() {
db.close();
}
public Cursor search(int mark) {
Cursor cursor = db.query(TABLE_SEARCH, new String[] { COL_id, COL_code,
COL_name }, "mark =" + mark, null, null, null, COL_date
+ " desc");
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
public Cursor searchByCode(String string) {
Cursor cursor = db.query(TABLE_SEARCH, new String[] { COL_id },
"gid = " + "'" + string + "'", null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
public long insertEntity(SearchEntity entity) {
Cursor cursor = searchByCode(entity.getCode());
if (cursor != null && cursor.moveToFirst()) {
return updateEntity(entity);
} else {
ContentValues values = new ContentValues();
values.put(COL_code, entity.getCode());
values.put(COL_name, entity.getName());
values.put(COL_mark, entity.getMark());
values.put(COL_date, new Date().toString());
return db.insert(TABLE_SEARCH, null, values);
}
}
public long updateEntity(SearchEntity entity) {
ContentValues values = new ContentValues();
values.put(COL_date, new Date().toString());
return db.update(TABLE_SEARCH, values, "_id=?",
new String[] { String.valueOf(entity.getId()) });
}
public long deleteEntity(int mark) {
return db.delete(TABLE_SEARCH, "mark=?",
new String[] { String.valueOf(mark) });
}
private class Database extends SQLiteOpenHelper {
public Database(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_InsideLetter);
db.execSQL(TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_SEARCH);
db.execSQL("DROP TABLE IF EXISTS" + TABLE_Inside);
onCreate(db);
}
}
}
2.先显示数据库里已有的最后10条数据
需求:
SQLite 数据库打开后从上到下是ABCDE1234567890
现在要每次从表的最后拿出5条ListView显示是: 67890
刷新操作后再拿出5条ListView显示是:1234567890
刷新操作后再拿出5条ListView显示是:ABCDE1234567890
以此类推
我要实现的功能就是类似聊天一样,下拉看以前的历史记录,一进来先显示数据库里已有的最后10条数据,数据库是动态增加的
第一步数据库操作:
select XXX from XXX limit 10 offset (select count(*) from XXX)-10;
第二步跳到的位置:
if (count < end) {
mListView.setSelection(0);
} else {
mListView.setSelection(end - start);
}