1

私は1つのデータベースを持っています-pro。テーブル名はordersです。テーブルには1つのフィールド(合計)があります。合計の値は- (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コンソールウィンドウに表示されることを意味します。ただし、null0のみが表示されますか。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 が役に立ちます。

結果セットから取得した値を出力result.getString(1)せずに返す必要があります。0 を返しているため、0 が表示されます。

Tomcat で何かを見たい場合は、呼び出し元クラスをサーブレットにする必要があります。

何かを修正しようとすると、結果に近づきます。

于 2012-08-03T06:19:18.083 に答える
0

data()メソッドで0を返すのではなく、result.getString(1)を返す必要があります。

よろしく

于 2012-08-03T06:08:54.910 に答える