簡體   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