在 sqlite 中获取查询的输出 - android
getting output of a query in sqlite - android
您可以使用预先提供的方法(例如 getInt(...)
、getString(...)
)从列中获取数据,但是如何从 SELECT
语句中获取数据呢? sqlite
我想做的声明:
SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME
您将如何执行此查询,然后将结果提供给 int
变量?
你也这样做:
String sql = "SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME";
因此,如果您使用 rawQuery()
创建一个 Cursor
对象:
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"));
创建一个 Dao CLASS,其中包含 returns 计数 TABLE_NAME
的计数方法
@Dao
abstract class TABLE_NAMEDao : BaseDao<TABLE_NAME> {
@Query("SELECT COUNT(id) FROM TABLE_NAME")
abstract fun count(): Long
}
您可以使用预先提供的方法(例如 getInt(...)
、getString(...)
)从列中获取数据,但是如何从 SELECT
语句中获取数据呢? sqlite
我想做的声明:
SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME
您将如何执行此查询,然后将结果提供给 int
变量?
你也这样做:
String sql = "SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME";
因此,如果您使用 rawQuery()
创建一个 Cursor
对象:
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"));
创建一个 Dao CLASS,其中包含 returns 计数 TABLE_NAME
的计数方法@Dao
abstract class TABLE_NAMEDao : BaseDao<TABLE_NAME> {
@Query("SELECT COUNT(id) FROM TABLE_NAME")
abstract fun count(): Long
}