Как настроить результаты запроса к базе данных комнаты, которых можно достичь в обычном вспомогательном классе SQLite Open - PullRequest
0 голосов
/ 30 мая 2020

В базе данных Room мы пишем запросы как DAO для получения результатов из базы данных. В обычном классе SQLite OpenHelper мы можем настроить результаты запроса в соответствии с нашими потребностями.

public ArrayList<MyData> getMyData(String id) {
        ArrayList<MyData> entries=new ArrayList<>();
        SQLiteDatabase db = this.getWritableDatabase();
        String query = "SELECT * FROM " + MYDATA + " WHERE " + ID + " = ?";
        Cursor c1 = db.rawQuery(query, new String[]{id});
        List<String> business=new ArrayList<>();
        if(c2.moveToFirst()){
                MyData entry=new MyData();
                entry.setId(c2.getString(0));
                String dataValue=c2.getString(1);
                String val="";
                if(dataValue.contains("__")){
                    String[] valueSplit =dataValue.split("__");
                    if(valueSplit[0]!=null){
                        val=address[0];
                    }
                }else{
                    val="";
                }
                entries.add(entry);
            }
        return entries;
    }  

В этом запросе результаты, полученные из базы данных, настраиваются на основе некоторого условия, добавляются в объект ArrayList MyData, а затем возвращается окончательный результат. Как это можно сделать в базе данных комнат

1 Ответ

1 голос
/ 30 мая 2020

Если я правильно понимаю ваш вопрос, вы можете использовать @query в своем DAO следующим образом

@Query("SELECT * FROM MYDATA WHERE id = :id")
public ArrayList<MyData> getMyData(String id);

Затем в вашей модели представления базы данных выставьте getMyData(String id) и обработайте свои данные

...