如何使用 Active Android 获取列名
How to get column names with Active Android
使用 Active Android,我可以将 table 的列名称作为 String[]
获取吗?
RawQuery()
returns 一个 List<Model>
所以我不能只插入 PRAGMA
。
建议的副本是关于获取 table 个名称,与活动 Android.
无关
好的,在搜索更多之后我发现我需要处理一个 Cursor
,我可以通过使用 Cache
.
来得到它
像这样:
Cursor c = Cache.openDatabase().rawQuery(new Select().from(User.class).toSql(),null);
String[] col = c.getColumnNames();
使用这些方法获取 Field
的集合:
public static synchronized TableInfo Cache.getTableInfo(Class<? extends Model> type);
public Collection<Field> TableInfo.getFields();
然后在每个 Field
上使用 public String TableInfo.getColumnName(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();
使用 Active Android,我可以将 table 的列名称作为 String[]
获取吗?
RawQuery()
returns 一个 List<Model>
所以我不能只插入 PRAGMA
。
建议的副本是关于获取 table 个名称,与活动 Android.
无关好的,在搜索更多之后我发现我需要处理一个 Cursor
,我可以通过使用 Cache
.
像这样:
Cursor c = Cache.openDatabase().rawQuery(new Select().from(User.class).toSql(),null);
String[] col = c.getColumnNames();
使用这些方法获取 Field
的集合:
public static synchronized TableInfo Cache.getTableInfo(Class<? extends Model> type);
public Collection<Field> TableInfo.getFields();
然后在每个 Field
上使用 public String TableInfo.getColumnName(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();