получение результата запроса в sqlite - android - PullRequest
0 голосов
/ 13 апреля 2020

вы получаете данные из столбцов, используя предварительно предоставленные методы, такие как getInt(...), getString(...), но как вы получаете данные из чего-то вроде оператора SELECT, в sqlite оператора я бы хотел бы сделать что-то вроде:

SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME

как бы вы выполнили этот запрос и затем получили результат в переменную int?

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Создать Dao CLASS, который включает метод подсчета, который возвращает счетчик TABLE_NAME

@Dao
abstract class TABLE_NAMEDao : BaseDao<TABLE_NAME> {
@Query("SELECT COUNT(id) FROM TABLE_NAME")
    abstract fun count(): Long
}
1 голос
/ 13 апреля 2020

Вы делаете это так же:

String sql = "SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME";

Поэтому, если вы создаете объект Cursor с rawQuery():

Cursor c = db.rawQuery(sql, null);

, этот Cursor содержит только 1 столбец и вы можете получить его значение с помощью:

if (c.moveToFirst()) result = c.getInt(0);

, где result является предопределенной переменной int. Но рекомендуется использовать псевдоним возвращаемого столбца, например:

String sql = "SELECT COUNT(COLUMN_NAME) AS counter FROM TABLE_NAME";

, чтобы вы могли получить его по имени:

if (c.moveToFirst()) result = c.getInt(c.getColumnIndex("counter"));
...