現在、Android用の最初のアプリを開発しています。データの取得と挿入に複数のテーブルを使用しています。開発中に、2つの列しかないテーブルからデータをフェッチしていることに気づきましたSTATS(_id, stat_name)
。私の問題は何ですか?私は10個のボタンを持つアクティビティを持っており、すべてのボタンは1つと相関していますstat_name
。ユーザーがボタンの1つを押すと、アプリケーションはSTATS
正しいことをするためにテーブルに「移動」し_id
、次にこれ_id
を別のテーブルGAME_STATS(_id, PlayerId (fk), GameId(fk), StatsId(fk)(andmore))
に入力します。STATS._id = GAME_STATS.StatsId
基本的に、に対して同様の操作を行う必要がありますPlayerId
。
今、私はそれをこのようにやっています:
public String getStatId(String statName){
String statId = "Error";
Cursor c = mDb.query(STAT_TABLE, new String[] {AbstractDbAdapter.STAT_ID, AbstractDbAdapter.STAT_NAME}, AbstractDbAdapter.STAT_NAME+ " = " +statName, null, null, null, null);
int count = c.getCount();
if(count == 1){
c.moveToFirst();
statId = c.getString(c.getColumnIndex(AbstractDbAdapter.STAT_ID));
}
c.close();
mDb.close();
Log.d("FootballApp","StatId =" +statId);
return statId;
}
私の問題は、返される値は1つだけである必要があることを知っていることです。そのためには、カーソルを使用する必要があります。また、私の意見では、1つのテーブルから1つのIDを取得するためだけに、すべてのコードを記述するのは複雑で時間のかかる方法のように見えます。アプリケーションに9つのテーブルがあり、たとえば名前しかない場合、別のテーブルから_idが必要になるたびに、同様のメソッドを作成する必要があります。
それをすべて行うもっと簡単な方法があるかどうか誰かに教えてもらえますか?お願いします:)ありがとう!:)