Я разрабатываю свое первое приложение для 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;
}
В чем моя проблема, я знаю, что ДОЛЖНО быть возвращено только одно значение, и мне все еще нужно использовать курсор для этого. Кроме того, на мой взгляд, это выглядит слишком сложно и требует много времени, чтобы написать весь этот код только для того, чтобы получить один идентификатор из одной таблицы. У меня есть 9 таблиц в моем приложении, и мне придется писать подобный метод каждый раз, когда мне нужен _id из другой таблицы, когда у меня есть, например, только имя.
Может ли кто-нибудь сказать мне, есть ли более простой способ сделать все это? Пожалуйста :)Спасибо!:)