package net.dev123.yibo.db; import java.util.ArrayList; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; /** * SQLiteUtil * * @version * @author 马庆升 * @time 2010-8-6 下午04:13:33 */ public class SQLiteUtil { private SQLiteDatabase sqLiteDatabase = null; public SQLiteUtil(SQLiteDatabase sqLiteDatabase) { if (null == sqLiteDatabase) { throw new NullPointerException("SQLiteDatabase参数不能为空"); } this.sqLiteDatabase = sqLiteDatabase; } public <T> ArrayList<T> queryByPage(String sql, int pageIndex, int pageSize, CursorDataExtractor<T> cursorDataExactor) { int offset = pageIndex * pageSize; sql = "select * from (" + sql + ")" + " limit " + pageSize + " offset" + offset; ArrayList<T> resultList = null; Cursor cursor = sqLiteDatabase.rawQuery(sql, null); if (cursor != null ) { if(cursor.moveToFirst()){ resultList = new ArrayList<T>(); do { resultList.add(cursorDataExactor.extractData(sqLiteDatabase, cursor)); } while (cursor.isLast()); } cursor.deactivate(); cursor.close(); } return resultList; } public <T> T query(String sql, CursorDataExtractor<T> cursorDataExactor) { Cursor cursor = sqLiteDatabase.rawQuery(sql, null); T t = null; if (cursor != null ) { if(cursor.moveToFirst()){ t = cursorDataExactor.extractData(sqLiteDatabase, cursor); } cursor.deactivate(); cursor.close(); } return t; } }