为了从数据库中获取数据,我使用原始查询,如您所见
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;但我迷路了。
提前致谢..
答案 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中,它通常更有效地将数据库替换为您实际需要的列的*。