Мне удалось получить записи из базы данных SQLite, когда у меня есть только один идентификатор для поиска.Например, я передал свой идентификатор лиги в таблицу боулеров и перечислил все боулеры, связанные с этим идентификатором.Теперь, когда я создаю Серию для этого боулера, я передаю Идентификатор Лиги и Идентификатор Боулера в таблицу Серий, чтобы убедиться, что я получаю только серии, принадлежащие этому боулеру в определенной Лиге.
К спискуБоулеры Я использовал следующий код:
public Bowler getBowler(String leagueId) {
//Get Readable Database If We Are Not Inserting Anything
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(Bowler.TABLE_NAME,
new String[]{Bowler.COLUMN_ID, Bowler.COLUMN_LEAGUE_ID, Bowler.COLUMN_NAME, Bowler.COLUMN_TIMESTAMP},
Bowler.COLUMN_LEAGUE_ID + "=?",
new String[]{String.valueOf(leagueId)}, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
//Prepare Bowler Object
Bowler bowler = new Bowler(
cursor.getInt(cursor.getColumnIndex(Bowler.COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(Bowler.COLUMN_LEAGUE_ID)),
cursor.getString(cursor.getColumnIndex(Bowler.COLUMN_NAME)),
cursor.getString(cursor.getColumnIndex(Bowler.COLUMN_TIMESTAMP)));
//Close Database Connection
cursor.close();
return bowler;
}
Чтобы перечислить серию боулеров, я попробовал следующее:
public Series getSeries(String leagueId, String bowlerId) {
//Get Readable Database If We Are Not Inserting Anything
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query( Series.TABLE_NAME,
new String[]{Series.COLUMN_ID, Series.COLUMN_LEAGUE_ID, Series.COLUMN_BOWLER_ID, Series.COLUMN_NAME, Series.COLUMN_SERIES_AVERAGE, Series.COLUMN_TIMESTAMP},
Series.COLUMN_LEAGUE_ID + Series.COLUMN_BOWLER_ID + "=?",
new String[]{String.valueOf(leagueId)}, null, null, null, null)
new String[]{String.valueOf(bowlerId)}, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
//Prepare Bowler Object
Series series = new Series(
cursor.getInt(cursor.getColumnIndex(Series.COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_LEAGUE_ID)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_BOWLER_ID)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_NAME)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_SERIES_AVERAGE)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_TIMESTAMP)));
//Close Database Connection
cursor.close();
return series;
}
Я знаю, что это неверно, и я не знаю, как на самом делеполучите это отформатированный правильно.
Я не уверен, является ли это даже правильным подходом или есть другой способ сделать то же самое, что может быть проще.