在Kotlin中使用Anko SQLite获取记录数

时间:2018-01-14 18:01:43

标签: kotlin anko

目前正在学习Kotlin并为iOS翻译应用程序,这包括在SQLite数据库上运行查询,我使用Anko SQLite扩展来运行查询,例如运行" SELECT * FROM QuoteType"我正在使用

val quoteTypes = database.use {
        select(QuoteType.TABLE_NAME).exec { parseList(classParser<QuoteType>()) }
    }

我正在努力想要运行SELECT COUNT(recordId)FROM QuoteType

有人能指出我正确的方向吗?

干杯

斯图尔特

3 个答案:

答案 0 :(得分:1)

我最终做的是声明一个数据类来保存结果

data class recordCountObject(val returnCount: Long)

然后使用普通的原始SQL查询

val quoteTypeCount = database.use {
            query<recordCountObject>("select count(*) AS returnCount FROM QuoteType")
        }

这使我能够绑定到具体对象

答案 1 :(得分:0)

根据documentation,您应该使用附加列select致电"count(recordId)"。您可以通过将附加的String参数传递给select方法,或者使用查询构建器,通过调用column("count(recordId)")方法返回的对象上的select来完成此操作。

答案 2 :(得分:0)

为什么不使用 val quoteTypeCount = database.use { query("your_table", arrayOf("*"), null, null, null, null, null,null).count } quoteTypeCount始终将Int作为记录计数