2012-08-07 66 views
0
CQL复合主键查询

我已经列族有我在的Java创建此两个主键获取数据

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


         ")"; 

现在我现在插入6行用不同的ID在一个USER_NAME(苏尼尔)的PrimaryKey当我尝试检索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下的所有数据。

+0

在cqlsh中试一试。如果它不能按预期工作,请复制并粘贴您的问题会话。 – 2012-08-07 22:29:42

回答

0

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

+0

你是否在这个问题上取得了进展? – 2012-08-16 11:30:58