Предположим, у меня есть таблица с четырьмя атрибутами: id, имя, адрес и номер телефона. Предполагая, что для извлечения всех записей студентов в таблице создан отдельный класс курсора базы данных, как я могу использовать этот курсор для получения записи только с определенным идентификатором или сортировки записей по идентификатору? Заранее спасибо!

0
Kalindu 27 Сен 2022 в 20:55

1 ответ

Типичным способом является использование запроса, который управляет созданием курсора для вызова SELECT SQL, который выбирает необходимые строки с помощью предложения WHERE, а в случае сортировки использует предложение ORDER BY.

Cursor — это просто гибкий класс, предназначенный для хранения любых результатов такого запроса.

В качестве примера вы можете использовать удобство Метод query, предоставляемый классом SQLiteDatabase: -

    Long id=0L; /* set according to the id required */
    Cursor csr = db.query(
            "the_table", /* the name of the table */
            null, /* null equates to * which means all unhidden columns */
            "id=?", /* the WHERE clause without the WHERE keyword */
            new String[]{String.valueOf(id)}, /* A String array of the arguments 1 arg for each ? place holder */
            null, /* the GROUP BY clause without the GROUP BY keyword */
            null, /* the HAVING clause without the HAVING keyword */
            "id ASC" /* the ORDER BY clause without the ORDER BY keyword */
    );
    /* This would build and execute a query that equates to"-
        SELECT * FROM the_table WHERE id='n' ORDER BY id ASC
        where n would be the value as per the variable id (0)
     */
    /* The cursor will contain the respective rows in the respective order */
    while (csr.moveToNext()) {
        /* do something with the data held in the Cursor */
    }
    csr.close(); /* should always close the cursor when done with it */
0
MikeT 27 Сен 2022 в 22:02