简体   繁体   中英

What is use of Cursor in Android Development?

I was going through some of the codes on the internet regarding the database connection, retrieval. I saw Cursor cur1= moveToFirst() in many codes, I wanted to know what is the use of a cursor and why we use moveToFirst() as I am new to android.

Cursor is the Interface which represents a 2 dimensional table of any database. When you try to retrieve some data using SELECT statement, then the database will first create a CURSOR object and return its reference to you.

The pointer of this returned reference is pointing to the 0th location which is otherwise called as before first location of the Cursor , so when you want to retrive data from the cursor, you have to first move to the first record so we have to use moveToFirst

When you invokes moveToFirst() method on the Cursor , it takes the cursor pointer to the first location . Now you can access the data present in the first record

In simple words, Cursor is a Interface whice returns collection of your query data. moveToFirst() is used to point the cursor position from where you want to get data from your cursor. There are methods moveToLast() , moveToNext() , moveToPrevious() , moveToPosition(position) by which you can iterate through your cursor by desired way.

For example, you have data in your Cursor

Lalit
Rithesh
Paresh
Chandra
  • moveToFirst() - If you use cursor.moveToFirst() then in this case it will point Lalit, as it is the first data in your cursor. To get the next data from cursor you can use moveToNext() .

  • moveToLast() - This will point Chandra as the current data in your cursor. To get the previous data from cursor you can use moveToPrevious()

A Cursor represents the result of a query and basically points to one row of the query result. This way Android can buffer the query results efficiently; as it does not have to load all data into memory.

To get the number of elements of the resulting query use the getCount() method.

To move between individual data rows, you can use the moveToFirst() and moveToNext() methods. The isAfterLast() method allows to check if the end of the query result has been reached.

Cursor provides typed get*() methods, eg getLong(columnIndex) , getString(columnIndex) to access the column data for the current position of the result. The "columnIndex" is the number of the column you are accessing.

Cursor also provides the getColumnIndexOrThrow(String) method which allows to get the column index for a column name of the table.

A Cursor needs to be closed with the close() method call. A query returns a Cursor object.

Cursor is like ResultSet in java, it has rows returned by some queries with its pointer. moveToFirst() , moveToNext() and moveToPosition(position) sets the pointer to desired postion.

游标是任何SQL查询结果将存储在其中的内容。

Use the Cursor interface as a data collection.

It is similar to a Cursor in PL/SQL in the way that it holds one or more rows returned by some queries with its pointer.

The following methods are available in the Cursor interface which iterate through the Cursor , setting the Cursor pointer to the desired position:

  • moveToFirst()
  • moveToLast()
  • moveToNext()
  • moveToPrevious()
  • moveToPosition(position)

Cursor interface provides random read-write access to the result set returned by a database query.

Cursor implementations are not required to be synchronized so code using a Cursor from multiple threads should perform its own synchronization when using the Cursor.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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