我现在正在为 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
.
现在,我正在这样做:
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;
}
我的问题是,我知道应该只返回一个值,而且我仍然必须使用 Cursor 才能这样做。此外,在我看来,编写所有代码只是为了从一张表中获取一个 id,这看起来既复杂又耗时。我的应用程序中有 9 个表,每次我需要来自不同表的 _id 时,我都必须编写类似的方法,例如,只有名称。
有人可以告诉我是否有更简单的方法可以做到这一点?请:)谢谢!:)