我有一个小型Android项目,我目前在我的Activity类中声明并调用数据库(SQLite)查询。但是,查询有点冗长,我发现自己在用户执行某些操作后反复声明并调用相同的查询(例如更改日期并从该日期加载数据)。因此,我想知道是否应该将查询保存在单独的类(例如Database Contract类?)中,或者甚至可能在它们自己的返回Cursor的方法中。我会想象可以使用方法getTransactionsByDate(Date newDate)
的方法。是否存在我可能不知道的既定模式?
答案 0 :(得分:0)
你的意思是什么?
public class DatabaseSource {
private SQLiteDatabase mDatabase;
private DatabaseHelper mHelper;
private Context mContext;
public DatabaseSource(Context context){
mContext = context;
mHelper = new DatabaseHelper(mContext);
}
public void open() throws SQLException{
mDatabase = mHelper.getWritableDatabase();
}
public void close(){
mDatabase.close();
}
public void insertData(int something){
ContentValues values = new ContentValues(1);
values.put(DatabaseHelper.COLUMN, something);
mDatabase.insert(DatabaseHelper.TABLE, null, values);
}
public Cursor getAll(){
Cursor cursor = mDatabase.rawQuery("SELECT * FROM TABLE");
return cursor;
}
}
这缩短了查询调用过程。在此示例中,DatabaseHelper
是一个扩展SQLiteOpenHelper
并且具有数据库onCreate
和onUpdate
方法的类。