如何在play java框架中检索表列的总和

时间:2016-04-14 15:35:06

标签: playframework playframework-2.0 playframework-2.1

我是新手,我可以检索数据库中的所有列,但我不知道如何获取所有检索数据的总和

model class

controller class

1 个答案:

答案 0 :(得分:0)

如果你真的想要获得Java中amount模型的所有General_store字段的总和,你可以定义一个计算它的方法:

private static long sumOfStores() {
    long sum = 0;
    List<General_store> allStores = General_store.all();
    for (General_store gs : allStores) {
        sum += gs.amount;
    }
    return sum;
}

当然,如果您使用的是Java 8,则可以使用流。

但更重要的部分是:在任何情况下都不要这样做。原因是这是存储在数据库中的信息。因此,您应该向数据库询问有关此信息的任何聚合,这些聚合对于计算而言非常简单。在SUM的情况下,这实际上是微不足道的。使用上述方法,您将首先从数据库中获取所有项目,以便在其中一个字段上执行一些简单的操作。所以请使用SELECT SUM(column_name) FROM table_name;并避免麻烦。使用Ebean,您可以毫无问题地使用此类查询:

private static long sumOfStores() {
    final String sql = "SELECT SUM(amount) as total FROM General_store";

    SqlQuery sqlQuery = Ebean.createSqlQuery(sql);
    SqlRow row = sqlQuery.findUnique();
    return row.getLong("total");
}