从房间数据库查询字符串

Query to String from Room Database

如何从数据库列的 SUM 示例创建对我的房间数据库的查询,然后将其转换为字符串,然后在不同的 activity 中填充文本字段?我的应用程序中有 5 个活动,我希望在其中自定义显示的数据,但我希望从我的房间数据库中提取该数据。

非常感谢

如果您想要单个值,那么您只需使用一个带注释的@Query 方法,该方法return就是单个值。例如

@Query("SELECT sum(the_column) FROM the_table")
String getTheSum();
  • 可以是整型,也可以是小数型,这样更合适
  • 无需转换为字符串只需检索为字符串
    • 但是,您可能需要格式化输出,例如如果你想要一个特定的精度(round(sum(the_column),2) for 2dp)。某些格式可能更容易在 SQLite 之外应用。

如果您想要很多 (0-n) 个,您可以 return 一个列表,例如

@Query("SELECT  sum(the_column) FROM the_table GROUP BY the_column_or_columns_to_group_by")
List<long> getTheSums();

如果你想 return 行的多个值,那么你需要一个 POJO,其中有与输出的列名匹配的成员变量。例如

@Query("SELECT sum(the_column) AS theSum, min(the_column) AS theMin, max(the_column) AS theMax FROM the_table GROUP BY the_column_or_columns_to_group_by")
List<ThePojo> getSumMinMax();

可以使用 POJO :-

class ThePojo {
   long theSum;
   long theMin;
   long theMax;
}

如果您想要所有的列加上额外的列,例如:-

@Query("SELECT the_table.*,sum(the_column) AS theSum, min(the_column) AS theMin, max(ithe_column) AS theMax FROM cities")
List<ThePojoPlus> getSumMinMaxPlus();

POJO :-

class ThePojoPlus {
    @Embedded
    TheTable the_table;
    @Embedded
    ThePojo pojo;
}

或(如果没有 ThePojo class)

class ThePojoPlus {
   @Embedded
   TheTable the_table;
   long theSum;
   long theMin;
   long theMax;
}