我有一个数据库-pro。表名为orders。该表有一个字段-total。总数的值为-(100200300400500)。现在我需要添加上面数据库中的所有值。我如何在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控制台窗口上。但是它只显示为空0吗。如何在Java中调用sum(total)
函数?请帮帮我。
试试这个数据方法
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;
}
println(result,getString(1));
应该用一个点而不是像逗号一样:
println(result.getString(1));
有一些语法错误需要修复。像Eclipse这样的IDE可以提供帮助。
您应该使用result.getString(1)
返回从resultSet中检索到的值,而不是打印它。您返回的是0,这就是您看到0的原因。
如果您想在tomcat中看到一些东西,那么您的调用者类应该是一个servlet。
试着解决一些问题,你就会离结果更近。
必须返回result.getString(1),而不能在方法data()中返回0。
问候
你应该这样做,它会工作
...
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))
。