如何定制普通SQLite Open helper类中可以实现的会议室数据库查询结果

问题描述 投票:0回答:1

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对象中,然后返回最终结果。如何在会议室数据库中完成]

android sqlite android-room sqliteopenhelper
1个回答
0
投票

如果我正确理解了您的问题,您可以像这样在您的DAO中使用@query

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

然后在数据库视图模型中公开getMyData(String id)并处理您的数据

© www.soinside.com 2019 - 2024. All rights reserved.