I was going through some of the codes in the internet regarding the database connection, retrieval. I saw Cursor cur1= moveToFirst()
in many codes,i wanted to know what is the use of cursor and why we use moveToFirst()
as i am new to android.
问题:
回答1:
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
回答2:
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 usecursor.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 usemoveToNext()
.moveToLast()
- This will point Chandra as the current data in your cursor. To get the previous data from cursor you can usemoveToPrevious()
回答3:
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, e.g. 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.
回答4:
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.
回答5:
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)
回答6:
A cursor is what any SQL query result will be stored in.
回答7:
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.
回答8:
Cursor is an interface which is used as a collection to represent data. It is similar to cursors in PL/SQL, it holds the rows (one or more) returned by some queries with its pointer. moveToFirst(), moveToLast() ,moveToNext(),moveToPrevious() and moveToPosition(position) are methods available in cursor which iterates through the cursor and sets the pointer to desired position.