【问题标题】:CQL Composite primary key query for getting data获取数据的CQL复合主键查询
【发布时间】:2012-08-04 07:03:25
【问题描述】:

我的列族有两个主键

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


                        ")";

我已经在 J​​ava 中创建了这个,现在我在一个用户名(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 下的所有数据。

【问题讨论】:

  • 在 cqlsh 中试一试。如果它没有按预期工作,请在此处复制并粘贴您的问题会话。

标签: java cassandra cql


【解决方案1】:

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

【讨论】:

  • 你在这个问题上取得了进展吗?
猜你喜欢
  • 1970-01-01
  • 2016-03-22
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
相关资源
最近更新 更多