1

我有一个数据库- pro。表名是orders。该表有一个字段 -总计。总数具有值 - (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。如何sum(total)在 Java 中调用函数?请帮我。

4

5 回答 5

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;
}
于 2012-08-03T06:20:04.900 回答
2
 println(result,getString(1));

应该用点代替逗号,例如:

println(result.getString(1));
于 2012-08-03T06:07:58.183 回答
1

有一些语法错误需要修复。诸如 Eclipse 之类的 IDE 可以提供帮助。

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

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

尝试修复一些东西,你会更接近结果。

于 2012-08-03T06:19:18.083 回答
0

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

问候

于 2012-08-03T06:08:54.910 回答
-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;
}

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

于 2017-12-21T16:52:09.810 回答