如何使用Active Android获取列名

时间:2015-09-07 08:29:39

标签: android activeandroid

使用Active Android,我可以将表的列名称设为String[]吗? RawQuery()会返回List<Model>,因此我无法将PRAGMA插入其中。

建议的副本是关于获取表名,与Active Android无关。

2 个答案:

答案 0 :(得分:0)

在搜索了一些之后我发现我需要处理Cursor,我可以使用Cache来解决这个问题。

像这样:

Cursor c = Cache.openDatabase().rawQuery(new Select().from(User.class).toSql(),null);
String[] col = c.getColumnNames();

答案 1 :(得分:0)

使用这些方法获取Field s的集合:

public static synchronized TableInfo Cache.getTableInfo(Class<? extends Model> type);
public Collection<Field> TableInfo.getFields();

然后在每个public String TableInfo.getColumnName(Field field)上使用Field来获取列名称。例如:

TableInfo<> userInfo = Cache.getTableInfo(User.class);
Collection<Field> fields = userInfo.getFields();
Set<String> columnNames = new HashSet<>();

for (Filed field : fields) {
    String name = userInfo.getColumnName(field);
    columnNames.add(name);
}

如果您需要获取id列名,请使用:

public String TableInfo.getIdName();