使用String []

时间:2016-04-26 10:33:14

标签: java android android-sqlite

我有我想要选择的列的字符串数组:

String[] columns = {"col1", "col2", "col3"};

以后列可能会更改,但始终是可用列的子集。

我找不到允许我将此数组作为列传递的SQLiteDatabase API。到目前为止,我唯一的解决方案是将,列作为分隔符加入字符串,并将其添加到我的查询字符串中并执行rawQuery

有更好的解决方案吗?

修改

查询是JOIN查询。

3 个答案:

答案 0 :(得分:3)

SQLiteDatabase中的query()方法接受String[] columns参数,这似乎是您正在寻找的东西。

使用字符串加入,的原始查询也可以正常工作,这基本上就是query()所做的事情。

  

哦,我忘了提到它也涉及加入

那么您最好的选择可能是rawQuery(),而您自己正在构建SQL。 Android SQLite包装器API实际上不太灵活。

答案 1 :(得分:0)

你可以这样做 -

ArrayList<String> dynamicColumnList = new ArrayList<>();
//add column dynamically to the list  
String columns[]= dynamicColumnList.toArray(new String[0]);
sqLiteDatabase.query("TableName",columns,"id",new String[]{id},null,null,null);

答案 2 :(得分:0)

可以使用SQLiteQueryBuilder

使用setTables添加JOIN并将String数组传递给queryprojectionIn参数

感谢@RalphBergmann。