转换为推荐的参数化查询方法

时间:2014-07-17 09:03:12

标签: java android database

为了从数据库中获取数据,我使用原始查询,如您所见

public ArrayList<GS> getSchedules() 
{
    try{
    Cursor c1 = sdb.rawQuery("SELECT DISTINCT * FROM Schedules", null);
    gs = new ArrayList<GS>();
    while (c1.moveToNext())
    {
        GS q1 = new GS();
        q1.setS_name(c1.getString(1));
        q1.setP_name(c1.getString(2));
        q1.setDesc(c1.getString(3));
        gs.add(q1);
    }
    }
    catch (Exception e) {
        e.printStackTrace();
    }
    return gs;
}

此方法成功运行,但我想更改它以获得推荐的参数化查询方法?

很抱歉,如果我的问题没有显示任何研究工作,但我已经尝试过&amp;但我迷路了。

提前致谢..

1 个答案:

答案 0 :(得分:1)

您应该尽可能避免使用rawQuery ...总是更喜欢内置的SQLiteDatabase rawQuery public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 查询方法。

所以你可以使用这个方法

Cursor c1 = sdb.rawQuery("SELECT DISTINCT * FROM Schedules", null);

所以改变

Cursor c1 = sdb.query(true,"Schedules",null,null,null,null,null,null,null);

{{1}}

有关详细信息,请参阅Android sqlite query

注意:正如@Gabe Sechan建议的那样,在DISTINCT中,它通常更有效地将数据库替换为您实际需要的列的*。