繁体   English   中英

为什么execSQL接受Object []和原始查询字符串[]

[英]Why execSQL accepts Object[] and raw Query String[]

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

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

是否有任何限制或约束?

可能我想念什么吗?

谢谢。

可能是因为rawQuery不是首选的查询方法。 而且由于sqlite列基本上没有类型,所以它们可能不想假设对要传递的内容调用toString。

SQLite支持列上的“类型相似性”概念。 列的类型相似性是存储在该列中的数据的推荐类型。 这里的重要思想是建议类型,而不是必需类型。 任何列仍可以存储任何类型的数据。 只是有些列(如果有选择)将更喜欢使用一种存储类而不是另一种。 列的首选存储类称为其“关联性”。

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

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

参量

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

bindArgs只支持byte [],String,Long和Double的bindArgs。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM