最近、私はアンドロイドアプリで疑似AciveRecordスタイルのdbコールを作成しようとしていて、User.find(Context dbContext)、User.find(long id 、Context dbContext)、User.delete(長いID、ContextのdbContext)など 疑似AciveRecord私はそれを "本当のActiveRecordライブラリ"またはそのようなものにするつもりはないという意味です。私はちょうど私のコードとActiveRecordのスタイルでdbコールを理解しやすいようにしたい個人的に私にとって最高です。 これまでのところは良いと私は例えば、このコードを持つすべての問題を持っていない:static getApplicationContext for SQLiteOpenHelper
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のものです。
ご意見、ご提案、ご意見はありますか?
ありがとうございました。
あなたがユーザーのDAOクラスを意味するなら、あなたは既にあなたのdbヘルパークラスにアプリケーションコンテキストを渡していると思うし、そのdb helperがあなたのユーザーDAOクラスのために提供するdb参照を使用しているようです。言い換えると、コンテキストはdb helperに渡され、ユーザdaoが使用するdbを返します。それが私の理解です。 –
はい、それはうまくいきます、私はそれがちょっと退屈なことを除いて0の問題を持っています。これは、すべてのクエリに対してただ1つの静的コンテキスト参照を保持することが良いアイデアか練習かどうかを尋ねる理由です。 –