2016-04-14 29 views
0

我在玩新的,我能够检索数据库中的所有列,但我不知道如何让所有的和检索数据如何检索表列的发挥Java框架之

model class

controller class

+0

你是什么意思*所有检索*数据的总和?顺便说一句,如果你提供的代码,它应该是文本形式作为问题的一部分,而不是作为屏幕截图 – Anton

+0

我的意思是:添加列 – user3518835

+0

我所知道的是做这样的东西,但在java中:SELECT SUM (column_name)FROM table_name; – user3518835

回答

0

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

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"); 
} 
+0

好主意谢谢。耐心,我问一个更多的问题,现在我试图通过我的控制器打印结果,但我得到一个错误PLZ帮助:'公共静态结果ShowBalance(){ 表格 taskData =表格(General_store.class); return ok(views.html.balance.render(General_store.sumOfStores(),taskData) );}' – user3518835

+0

如果答案解决了您的问题,您可以考虑接受它。只是供参考:打开另一个问题,如果你有不同的问题,而不是编辑这一个:)我会尽力帮助那里以及 – Anton

+0

错误说,不能应用于lon.play.form user3518835