1import java.sql.Connection;
 2import java.sql.DriverManager;
 3import java.sql.ResultSet;
 4import java.sql.Statement;
 5
 6/**
 7 * コントロールブレイク
 8 */

 9public class ControlBreak {
10
11    public static void main(String[] args) {
12
13        try {
14            //データベース接続
15            Class.forName("org.postgresql.Driver");
16            Connection con = DriverManager.getConnection(
17                    "jdbc:postgresql:hellodb""user""pass");
18            Statement stmt = con.createStatement();
19            //SQL文
20            String sql = "SELECT * FROM TABLE ORDER BY CONTROL_KEY";
21            // SQL実行
22            ResultSet rs = stmt.executeQuery(sql);
23
24            //コントロールキーと合計の初期化
25            String controlKeyOld = null;
26            int total = 0;
27
28            //レコードがなくなるまでループ
29            while (rs.next()) {
30                //コントロールキー取得
31                String controlKeyNow = rs.getString("CONTROL_KEY");
32                //初回ループ時
33                if (controlKeyOld == null{
34                    controlKeyOld = controlKeyNow;
35                }

36
37                //コントロールキーの比較
38                if (controlKeyOld.equals(controlKeyNow)) {
39                    //コントロールキーが等しい場合
40                    total = +rs.getInt("SALES_AMOUNT");
41                }
 else {
42                    //コントロールキーが異なる場合
43                    System.out.println(controlKeyOld + ":" + total);
44                    total = rs.getInt("SALES_AMOUNT");
45                }

46                //コントロールキーの退避
47                controlKeyOld = controlKeyNow;
48            }

49
50            System.out.println(controlKeyOld + ":" + total);
51
52            //データベース切断
53            rs.close();
54            stmt.close();
55            con.close();
56
57        }
 catch (Exception e) {
58            //例外処理
59            e.printStackTrace();
60        }

61    }

62}

63