《Spring Data 官方文档》5.7 查询CQL表

原文链接 译者:flystarfly

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/113893.html

(0)
上一篇 2021年8月27日
下一篇 2021年8月27日

相关推荐

发表回复

登录后才能评论