6
我對Android中的Cursor
的實現細節感興趣。我知道基本上它只是一個interface,它提供對數據庫查詢返回的結果集的隨機讀寫訪問。我想知道具體的Cursor
實現:Android數據庫遊標如何實現細節?
- 它是一種數據結構存儲數據庫結果集?
- 或者它只是一個只處理一行的結構?
我對Android中的Cursor
的實現細節感興趣。我知道基本上它只是一個interface,它提供對數據庫查詢返回的結果集的隨機讀寫訪問。我想知道具體的Cursor
實現:Android數據庫遊標如何實現細節?
是隻是其門店導致數據庫
是設置一些數據結構。
或者它只是一些只能處理一行的結構?
不完全是。遊標可以根據源查詢處理一行或多行。遊標是數據的映射,並將包含與源(選擇)查詢返回一樣多的行。因此,如果查詢返回100行,則這些行將插入到光標中,並且光標包含這些行。
您可以將Cursor想象爲具有動態大小(與List類似)的數據映射,其中數據被放置爲「行」。每行都有自己的行ID(行號,我們可以說是某個指針),它們在插入光標時逐漸生成,您可以簡單地在具有此數字的行之間移動。 隱含地,每個遊標具有位於第一行(-1位置)之前的「實際指針」,因此如果您致電c.getString(0)
,將會拋出預期,因爲沒有任何可檢索的東西。
因此,總是需要調用cursor.moveToFirst()
準備讀取Cursor,如果爲空,則方法返回false,因爲沒有行。