我正在爲android開發我的冷杉應用程序,我正在使用多個表來獲取和插入數據。在開發過程中,發現自己從表中提取數據時只有兩列STATS(_id, stat_name)
。我的問題是什麼?我有一個有10個按鈕的活動,每個按鈕都與一個stat_name
相關聯。當用戶按下其中一個按鈕時,應用程序正「去」到STATS
表中以得到正確的_id
,然後將此_id
輸入到另一個表GAME_STATS(_id, PlayerId (fk), GameId(fk), StatsId(fk)(andmore))
的STATS._id = GAME_STATS.StatsId
,我基本上必須對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;
}
什麼我的問題是,我知道,應該只有一個返回值,我還是要用光標,這樣做。此外,在我看來,它看起來複雜和耗時的方式編寫所有代碼只是爲了從一個表中獲得一個ID。我在我的應用程序中有9個表格,並且每當我需要從不同的表格中選擇_id時,我都必須編寫類似的方法,例如,只有名稱。
有人可以告訴我是否有更簡單的方法來做這一切?請:) 謝謝! :)
對於更安全的代碼一點點更換 'selectBy + 「=」 + selectName,null' 與 'selectBy + 「=?」,新的String [] {selectName}' – Afilu 2017-11-24 10:24:13