私は今、アンドロイド用の私のアプリを開発しています、私は取得し、データを挿入するために複数のテーブルを使用しています。開発中に自分自身がテーブルからデータを取得していることがわかりましたSTATS(_id, stat_name)
。私の問題は何ですか?私は10個のボタンでアクティビティを持っており、すべてのボタンはstat_name
と相関しています。ユーザがボタンの1つを押すと、アプリケーションはSTATS
テーブルに「_id
」を取得してから_id
に「GAME_STATS(_id, PlayerId (fk), GameId(fk), StatsId(fk)(andmore))
」と入力してに、PlayerId
と同様の操作を行う必要があります。今 androidのSQLiteから単一の値を取得する
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つのIDを取得するために、すべてのコードを記述するのは複雑で時間がかかります。私のアプリケーションには9つのテーブルがあり、たとえば、名前だけを持つときに、別のテーブルから_idが必要なたびに、同様のメソッドを書く必要があります。
もっと簡単な方法があれば教えてもらえますか?してください:) ありがとう! :)
を入力するのは少しの節約になります ' ' selectBy + "=" + selectName、 'selectBy + "=?" とnull'なので 、新しいString [] {selectName}を置き換えます – Afilu