2016-04-14 34 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