Давайте рассмотрим функцию ниже,
data class ModelData(var id: String?, var name: String?) {
}
fun loadData(ids: List<String>): List<ModelData> {
// Here, I have to return list of model data which matches with ids
}
Я могу сделать это с помощью цикла, который кажется очень неэффективным.
fun loadData(ids: List<String>): List<ModelData> {
val list = List<ModelData>
val selection = DBKeys.MODEL_ID + " LIKE ?"
val selectionArgs = arrayOf<String>("")
for (id in ids) {
val selectionArg = arrayOf<String>(id)
val cursor = DBManager.query(TABLE_RECORD, selection, selectionArgs, null, null, null)
// prepare model 'data' from cursor
list.add(data)
}
return list
}
Интересно, есть ли другой эффективный способ? Было бы лучше, если бы существовал запрос выбора SQLite с операцией содержимого.
Обновление
Из предложенного ADM поста я нашел пример,
String[] args = new String[]{A,B} // if A, B are variables
String[] args = new String[]{"A","B"}
Cursor cur = db.query("tab1", null, "name in (?,?)", args, null, null, null);
Интересно, если переменные из списка, есть ли способ подготовить дезинфицированный ввод без использования цикла?