2

我想有一个选项来调用'rawQuery'并传入一个整数列表,但看起来我不能:所有'rawQuery'方法都需要字符串数组......

为什么?我可以为每个传递的 int 对象调用“toString”,但我在这里看不到任何逻辑。为什么 Google 不提供接受对象列表的 rawQuery?

对此有任何限制或约束吗?

可能我错过了什么?

谢谢你。

4

2 回答 2

0

可能是因为 rawQuery 不是首选的查询方法。而且由于 sqlite 列基本上没有类型,因此他们可能不想假设在您传递的任何内容上调用 toString。

SQLite 支持列上的“类型关联”概念。列的类型亲和性是存储在该列中的数据的推荐类型。这里的重要思想是该类型是推荐的,而不是必需的。任何列仍然可以存储任何类型的数据。只是某些列,如果可以选择,会更喜欢使用一个存储类而不是另一个。列的首选存储类称为“亲和性”。

您是否有理由要使用rawQuery而不是execSQL

于 2013-01-04T23:11:21.793 回答
-1

参数列表中不接受复杂对象,如参数bindArgs的文档中所述:

参数

sql 要执行的 SQL 语句。不支持以分号分隔的多个语句。

bindArgs 在 bindArgs 中仅支持 byte[]、String、Long 和 Double。

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String, java.lang.Object[])

于 2013-01-04T22:08:46.830 回答