Что такое использование курсора в разработке Android? - PullRequest
70 голосов
/ 30 марта 2012

Я просматривал некоторые коды в Интернете, касающиеся подключения к базе данных, поиска. Я видел Cursor cur1= moveToFirst() во многих кодах, я хотел знать, что такое использование курсора и почему мы используем moveToFirst(), поскольку я новичок в Android.

Ответы [ 7 ]

131 голосов
/ 30 марта 2012

Курсор - это интерфейс, который представляет собой двумерную таблицу любой базы данных. Когда вы пытаетесь получить некоторые данные с помощью оператора SELECT , база данных сначала создаст объект CURSOR и вернет вам ссылку на него.

Указатель этой возвращенной ссылки указывает на 0-е местоположение , которое иначе называется перед первым местоположением Курсор , поэтому, когда вы хотите Чтобы получить данные из курсора, вам нужно сначала перейти к первой записи, поэтому мы должны использовать moveToFirst

Когда вы вызываете метод moveToFirst () для Курсор , он переводит указатель курсора в первое местоположение . Теперь вы можете получить доступ к данным, присутствующим в первой записи

60 голосов
/ 30 марта 2012

Проще говоря, Cursor - это интерфейс, который возвращает коллекцию данных вашего запроса. moveToFirst() используется для указания позиции курсора, откуда вы хотите получить данные от вашего курсора. Существуют методы moveToLast(), moveToNext(), moveToPrevious(), moveToPosition(position), с помощью которых вы можете перемещаться по курсору нужным способом.

Например, у вас есть данные в вашем курсоре

Lalit
Rithesh
Paresh
Chandra
  • moveToFirst() - если вы используете cursor.moveToFirst(), то в этом случае он укажет на Lalit, так как это первые данные в вашем курсоре. Получить Следующие данные от курсора вы можете использовать moveToNext().

  • moveToLast() - Это укажет Чандру в качестве текущих данных в вашем курсор. Чтобы получить предыдущие данные из курсора вы можете использовать moveToPrevious()

24 голосов
/ 06 декабря 2012

Курсор представляет результат запроса и в основном указывает на одну строку результата запроса. Таким образом, Android может эффективно буферизовать результаты запроса; поскольку он не должен загружать все данные в память.

Чтобы получить количество элементов в результирующем запросе, используйте метод getCount().

Для перемещения между отдельными строками данных вы можете использовать методы moveToFirst() и moveToNext(). Метод isAfterLast() позволяет проверить, достигнут ли конец результата запроса.

Курсор предоставляет типизированные методы get * (), например getLong(columnIndex), getString(columnIndex) для доступа к данным столбца для текущей позиции результата. "ColumnIndex" - это номер столбца, к которому вы обращаетесь.

Курсор также предоставляет метод getColumnIndexOrThrow(String), который позволяет получить индекс столбца для имени столбца таблицы.

Курсор должен быть закрыт с помощью вызова метода close(). Запрос возвращает объект Cursor.

10 голосов
/ 30 марта 2012

Курсор похож на ResultSet в Java, он имеет строки, возвращаемые некоторыми запросами с указателем. moveToFirst(), moveToNext() и moveToPosition(position) устанавливает указатель на желаемое положение.

3 голосов
/ 04 января 2017

Курсор - это то, в чем будет сохранен любой результат SQL-запроса.

2 голосов
/ 17 февраля 2016

Используйте интерфейс Курсор в качестве сбора данных.

Он похож на Cursor в PL/SQL в том смысле, что он содержит одну или несколько строк, возвращаемых некоторыми запросами со своим указателем.

В интерфейсе Cursor доступны следующие методы, которые перебирают Cursor, устанавливая Cursor pointer в нужное положение:

  • moveToFirst ()
  • moveToLast ()
  • moveToNext ()
  • moveToPrevious ()
  • moveToPosition (положение)
0 голосов
/ 31 марта 2016

Интерфейс Cursor обеспечивает произвольный доступ на чтение и запись к результирующему набору, возвращенному запросом к базе данных.

Реализации курсора не требуется синхронизировать, поэтому код, использующий Cursor из нескольких потоков, должен выполнять собственную синхронизацию при использованииКурсор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...