閱讀374 返回首頁    go 技術社區[雲棲]


《Spring Data 官方文檔》5.7 查詢CQL表

5.7. 查詢CQL表

有幾種選擇和查詢的風格,您可以從中選擇。 請參閱CassandraTemplate API文檔,了解所有可用的重載。

查詢表的多行數據,並將結果映射到POJO。

String cqlAll = "select * from person";

List<Person> results = cassandraOperations.select(cqlAll, Person.class);
for (Person p : results) {
	LOG.info(String.format("Found People with Name [%s] for id [%s]", p.getName(), p.getId()));
}

查詢表的單行數據,並將結果映射到POJO。

String cqlOne = "select * from person where id = '123123123'";

Person p = cassandraOperations.selectOne(cqlOne, Person.class);
LOG.info(String.format("Found Person with Name [%s] for id [%s]", p.getName(), p.getId()));

使用DataStax Java驅動程序中的QueryBuilder.Select對象來查詢表。.

Select select = QueryBuilder.select().from("person");
select.where(QueryBuilder.eq("id", "123123123"));

Person p = cassandraOperations.selectOne(select, Person.class);
LOG.info(String.format("Found Person with Name [%s] for id [%s]", p.getName(), p.getId()));

這些方法總會過時。 您可以編寫自己的CQL語句,並且有幾個回調處理程序用於映射結果。 該示例使用RowMapper接口。

String cqlAll = "select * from person";
List<Person> results = cassandraOperations.query(cqlAll, new RowMapper<Person>() {

	public Person mapRow(Row row, int rowNum) throws DriverException {
		Person p = new Person(row.getString("id"), row.getString("name"), row.getInt("age"));
		return p;
	}
});

for (Person p : results) {
	LOG.info(String.format("Found People with Name [%s] for id [%s]", p.getName(), p.getId()));
}

轉載自 並發編程網 - ifeve.com

最後更新:2017-05-19 11:31:52

  上一篇:go  《雲數據管理:挑戰與機遇》-2.1分布式數據管理
  下一篇:go  《Spring Data 官方文檔》5.8. 使用自定義轉換器重載默認映射至5.10. 異常解釋