Извлечение одного значения из SQLite в Android

Я разрабатываю свое первое приложение для 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 из другой таблицы, когда у меня есть, например, только имя.

Может ли кто-нибудь сказать мне, есть ли более простой способ сделать все это? Пожалуйста :)Спасибо!:)

6
задан mancuss 14 July 2012 в 01:08
поделиться