新手關於cursor的理解

2021-07-13 12:05:54 字數 1657 閱讀 4640

關於 cursor

在你理解和使用 android cursor 的時候你必須先知道關於 cursor 的幾件事情:

cursor 是每行的集合。

使用 movetofirst() 定位第一行。

你必須知道每一列的名稱。

你必須知道每一列的資料型別。

cursor 是乙個隨機的資料來源。

所有的資料都是通過下標取得。

關於 cursor 的重要方法:

close()

關閉游標,釋放資源

copystringtobuffer(int columnindex, chararraybuffer buffer)

在緩衝區中檢索請求的列的文字,將將其儲存

getcolumncount()

返回所有列的總數

getcolumnindex(string columnname)

返回指定列的名稱,如果不存在返回-1

getcolumnindexorthrow(string columnname)

從零開始返回指定列名稱,如果不存在將丟擲illegalargumentexception 異常。

getcolumnname(int columnindex)

從給定的索引返回列名

getcolumnnames()

返回乙個字串陣列的列名

getcount()

返回cursor 中的行數

movetofirst()

移動游標到第一行

movetolast()

移動游標到最後一行

movetonext()

移動游標到下一行

movetoposition(int position)

移動游標到乙個絕對的位置

movetoprevious()

移動游標到上一行

下面來看看一小段**:

if (cur.movetofirst() == false)

訪問 cursor 的下標獲得其中的資料

int namecolumnindex = cur.getcolumnindex(people.name);

string name = cur.getstring(namecolumnindex);

現在讓我們看看如何迴圈 cursor 取出我們需要的資料

while(cur.movetonext())

當cur.movetonext() 為假時將跳出迴圈,即 cursor 資料迴圈完畢。

isbeforefirst()

返回游標是否指向之前第一行的位置

isafterlast()

返回游標是否指向第最後一行的位置

isclosed()

如果返回 true 即表示該遊戲標己關閉

有了以上的方法,可以如此取出資料

for(cur.movetofirst();!cur.isafterlast();cur.movetonext())

tip:在android 查詢資料是通過cursor 類來實現的。當我們使用 sqlitedatabase.query()方法時,就會得到cursor物件, cursor所指向的就是每一條資料。結合ado.net 的知識可能好理解一點。

cursor 位於 android.database.cursor類,可見出它的設計是基於資料庫服務產生的。

關於oracle的cursor的使用

今天專案突然要用到游標,好久沒有使用了有些生疏,在使用中發現以前沒注意的一些問題,先貼上 procedure p insert wzdeqd abc varchar2,sj varchar2 is v temp varchar2 30 v flows user wz dewzqd mb rowtyp...

Android 中關於 Cursor 類的介紹

使用過 sqlite 資料庫的童鞋對 cursor 應該不陌生,如果你是搞.net 開發你大可以把cursor理解成 ado.net 中的資料集合。今天特地將它單獨拿出來談,加深自己和大家對android 中使用 cursor 的理解。關於 cursor 在你理解和使用 android cursor...

Android 中關於 Cursor 類的介紹

使用過 sqlite 資料庫的童鞋對 cursor 應該不陌生,如果你是搞.net 開發你大可以把cursor理解成 ado.net 中的資料集合相當於datareader。今天特地將它單獨拿出來談,加深自己和大家對android 中使用 cursor 的理解。關於 cursor 在你理解和使用 a...