最近、Android アプリで疑似 ActiveRecord スタイルの db 呼び出しを作成しようとしていて、User.all(Context dbContext)、User.find(long id、Context dbContext)、User. delete(long id, Context dbContext) など。疑似 ActiveRecord とは、「実際の ActiveRecord ライブラリ」などにするつもりはないということです。コード内で理解しやすい db 呼び出しを使用したいだけで、個人的には ActiveRecord スタイルが最適です。これまでのところ非常に良好で、たとえば次のコードを使用しても問題はありません。
public static Cursor allAsCursor(Context dbContext) {
DBHelper dBHelper = new DBHelper(dbContext);
SQLiteDatabase database = dBHelper.getReadableDatabase();
Cursor dbQueryResult = database.query(DBHelper.TABLE_NAME_USERS, null, null, null, null, null, "_id DESC");
dbQueryResult.getCount();
database.close();
dBHelper.close();
dbContext = null;
return dbQueryResult;
}
しかし、私が気になるのは、呼び出しを行うときに常にアクティビティコンテキストなどを渡すことであり、User クラス (User.find、User. all など) すべての db クエリのアプリケーション コンテキストを格納する静的変数? これは、アプリケーション ランチ時または最初のクエリ リクエストの前に行うことができます。
私の考えは、共有アプリケーションから常に取得するクエリのほとんどの静的コンテキスト マネージャーを取得した iOS CoreData のことから来ています。
考え、提案、アイデアはありますか?
ありがとう。