我有一个数据库 - 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)
函数?请帮帮我。
答案 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))
。