从MySQL数据库获取Java中的Sum(total)

时间:2012-08-03 06:04:37

标签: java mysql

我有一个数据库 - pro 。表名为 订单 。该表有一个字段 - 总计 。总数值为 (100,200,300,400,500) 。现在我需要添加上面数据库中的所有值。我怎么能用Java做到这一点?如何用Java编写查询?请帮我。这是我的代码部分:

    public class GetCurrentDateTime {
     private Object sum;
    public int data(){  

try{
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/pro","root","");

    PreparedStatement statement =  con.prepareStatement("select sum(total) from orders where status='Q' AND WEEK(date) = WEEK(CURDATE()) AND YEAR(date) = YEAR(CURDATE())");
     ResultSet result = statement.executeQuery();
     println(result,getString(1));
    }

      catch(Exception exc){
      System.out.println(exc.getMessage());
      }
return 0;   
      }

    private void println(ResultSet result, Object string) {
// TODO Auto-generated method stub

     }
      private Object getString(int i) {
// TODO Auto-generated method stub
return sum;
    }
     }

这是我的另一个课程:

      public class Demo {
    public static void main(String[] args){
    GetCurrentDateTime obj = new GetCurrentDateTime();
    System.out.println(obj.data());

    }

   }

如果我必须运行我的演示类,则意味着在tomcat控制台窗口中显示总数的总和。但是它仅显示为null 0。如何在Java中调用sum(total)函数?请帮帮我。

5 个答案:

答案 0 :(得分:6)

尝试使用此数据方法

public double data(){
  double value=0.0;
  try{
     Class.forName("com.mysql.jdbc.Driver");
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/pro","root","");

     PreparedStatement statement =  con.prepareStatement("select sum(total) from orders where status='Q' AND WEEK(date) = WEEK(CURDATE()) AND YEAR(date) = YEAR(CURDATE())");
     ResultSet result = statement.executeQuery();
     result.next();
     String sum = result.getString(1);
     System.out.println(sum);
     value = Double.parseDouble(sum);

    } catch(Exception exc){
        System.out.println(exc.getMessage());
    }
    return value;
}

答案 1 :(得分:2)

 println(result,getString(1));

应该是一个点而不是逗号:

println(result.getString(1));

答案 2 :(得分:1)

要修复一些语法错误。像Eclipse这样的IDE可以提供帮助。

您应该返回从resultSet中检索到的值,result.getString(1)不打印它。您将返回0,这就是您看到0的原因。

如果你想在tomcat中看到一些内容,你的调用者类应该是一个servlet。

尝试修复某些内容,使其更接近结果。

答案 3 :(得分:0)

您必须返回result.getString(1)并且不在方法data()中返回0。

此致

答案 4 :(得分:-1)

你应该做这样的事情

        ...

        PreparedStatement statement = con.prepareStatement("select sum(total) from orders where status='Q' AND WEEK(date) = WEEK(CURDATE()) AND YEAR(date) = YEAR(CURDATE())");
        ResultSet result = statement.executeQuery();
        println(result.getString(sum(total)));
    }
    catch(Exception exc) {
        System.out.println(exc.getMessage());
    }
    return 0;   
}

private void println(ResultSet result, Object string) {
    // TODO Auto-generated method stub
}

private Object getString(int i) {
    // TODO Auto-generated method stub
    return sum;
}

您需要通过在结果集中指定总和(总计)来打印或获取总和的结果,如result.getString(sum(total))