用于获取数据的CQL Composite主键查询

时间:2012-08-07 09:30:41

标签: java cassandra cql

我的列族有两个主键

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


                        ")";

我已经用Java创建了这个,现在我在一个user_name(sunil)primarykey上插入了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下的所有数据。

1 个答案:

答案 0 :(得分:0)

您有一个循环遍历返回行中的列,但您只需要一行(这是rs.getRow()方法)。您应该将rs.getRow()调用和以下逻辑写入将外部循环写入外循环,只要getRow()不返回null。这个out循环将检索所有用户的id。