0

我的列族有两个主键

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


                        ")";

我已经用Java创建了这个现在我在一个用户名(sunil)主键上插入了6行,现在当我尝试检索sunil主键中的所有值时,它只给了我一个细节

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("--------------------------------------------------");
            }

它只给我一个输出。查询有什么问题吗?我想要密钥 sunil 下的所有数据。

4

1 回答 1

0

您有一个循环遍历返回行中的列,但您只要求一行(即 rs.getRow() 方法)。您应该将 rs.getRow() 调用和以下逻辑写入外部循环,只要 getRow() 不返回 null,该循环就会迭代。这个输出循环将检索所有用户的 ID。

于 2012-08-14T18:44:05.610 回答