Estoy desarrollando mi primera aplicación para Android en este momento, estoy usando múltiples tablas para obtener e insertar datos. durante el desarrollo y encontré que obtengo datos de la tabla con solo dos columnas STATS(_id, stat_name)
. ¿Cuál es mi problema? Tengo una actividad con 10 botones, y cada botón se correlaciona con uno stat_name
. Cuando los usuarios presionan una de las teclas, la aplicación "va" a la tabla STATS
para obtener el _id
correcto y luego ingresa _id
en otra tabla GAME_STATS(_id, PlayerId (fk), GameId(fk), StatsId(fk)(andmore))
en STATS._id = GAME_STATS.StatsId
y básicamente tengo que hacer una operación similar para PlayerId
.Obteniendo un solo valor de SQLite en Android
En este momento, estoy haciendo de esta manera:
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;
}
Lo que mi problema es, que sé que debe haber sólo un valor devuelto, y todavía tengo que usar las teclas, para hacerlo . Además, en mi opinión, parece complicado y tedioso escribir todo ese código solo para obtener una identificación de una tabla. Tengo 9 tablas en mi aplicación, y tendré que escribir un método similar cada vez que necesite _id de una tabla diferente cuando tengo, por ejemplo, solo nombre.
¿Alguien me puede decir si hay una manera más fácil de hacer todo eso? Por favor :) gracias! :)
Para el código más seguro sustituir 'selectBy + "=" + selectName, null' con ' selectBy + "=?", Nuevo String [] {} 'selectName – Afilu