0

2 つの主キーを持つ列ファミリーがあります

"CREATE TABLE compositkeys(user_name varchar," +
                                            "user_id int,"+
                                            "name varchar," +
                                            "gender varchar," +
                                            "PRIMARY KEY (user_name,user_id)" +


                        ")";

これをJavaで作成しました。1つのuser_name(sunil)主キーに異なるIDで6行を挿入しました。sunil主キーのすべての値を取得しようとすると、詳細が1つしか表示されません

String qry = "select * from compositkeys where user_name = 'sunil' order by user_id";
            Statement smt = con.createStatement();
            //smt.executeUpdate(qry);

            ResultSet rs = smt.executeQuery(qry);
            //rs.get
            int r = rs.getRow();
            System.out.println(r);
            ResultSetMetaData rm = rs.getMetaData();
            int columnCount = rm.getColumnCount();
            System.out.println(columnCount);
            for(int i=1;i<=columnCount;i++)
            {
                String name = rm.getColumnName(i);
                 System.out.print(rm.getColumnName(i));
                 System.out.println(" = "+rs.getString(name));
                 System.out.println("--------------------------------------------------");
            }

それは私に1つの出力しか与えません。クエリに何か問題がありますか?キーsunilの下にあるすべてのデータが必要です。

4

1 に答える 1

0

返された行の列をループする単一のループがありますが、要求するのは 1 つの行のみです (それが rs.getRow() メソッドです)。rs.getRow() 呼び出しと次のロジックを配置して、getRow() が null を返さない限り反復する外側のループに結果を書き込む必要があります。この out ループは、ユーザーのすべての ID を取得するものです。

于 2012-08-14T18:44:05.610 に答える