【发布时间】:2014-12-01 21:20:03
【问题描述】:
我正在努力为我正在构建的 API “完全”动态地获取 SQLite 数据库的选择方法。此时的一个也是最后一个问题是我无法分辨从查询返回的项目的类型。 我尝试了其他主题中建议的一些方法,但它们似乎都不适合我。
它现在的使用方式是:一切都是字符串。我知道这适用于 int 和 Strings,但我不确定其他格式,当然这不是它应该的方式。 此外,此代码目前仅适用于一条记录,但这不是问题。
public HashMap<String, String> select(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
columns = cursor.getColumnNames(); //Used when columns[] are null - SELECT * FROM ...
HashMap<String, String> resultTable = new HashMap<String, String>();
if (cursor.getCount() > 0) {
cursor.moveToFirst();
for (int i = 0; i < cursor.getColumnCount(); i++) {
resultTable.put(columns[i], cursor.getString(i));
}
}
cursor.close();
db.close();
return resultTable;
}
我正在使用 android api 版本 10,所以 getType 不可用
【问题讨论】:
标签: android sqlite select dynamic gettype