转换为推荐的参数化查询方法 [英] Conversion to recommended parametrized query method
问题描述
有关从数据库中获取数据我使用原始查询,你可以看到
For getting data from database I use raw query, as you can see
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;
}
此方法效果successfullly但我想改变它获得推荐的参数化查询方法?
This method works successfullly but I want to change it to attain the recommended parametrized query method ?
很抱歉,如果我的问题不显示任何研究工作,但我已经试过&放大器;但我迷路了。
Sorry if my question does not show any research effort, but I have tried & but I was lost.
在此先感谢..
推荐答案
您应该避免使用 rawQuery
尽可能...总是$ P $的PFER内置 SQLiteDatabase
查询方法在 rawQuery
。
You should avoid use of rawQuery
whenever possible... always prefer the built in SQLiteDatabase
query methods over rawQuery
.
所以,你可以使用这个方法
So you may use this method
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);
有关更多信息请参见<一个href=\"http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#query%28boolean,%20java.lang.String,%20java.lang.String%5B%5D,%20java.lang.String,%20java.lang.String%5B%5D,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String%29\"相对=nofollow> Android的SQLite的查询
请注意:由于@Gabe Sechan建议,在其DISTINCT一般为DB更有效的的*同列的名称替换您的实际需要。
Note : As @Gabe Sechan suggested,in DISTINCT its generally more efficient for the db to replace the * with the names of the columns you actually need.
这篇关于转换为推荐的参数化查询方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!