使用Spring Data中的CassandraTemplate

作者:baeldung

译者:xuli

1.概述

这是Spring Data Cassandra文章系列的第二篇文章。在本文中,我们将主要关注数据访问层中的CassandraTemplate和CQL查询。您可以在本系列的第一篇文章中阅读有关Spring Data Cassandra的更多信息(第一篇文章也进行了翻译)。

Cassandra查询语言(CQL)是Cassandra数据库的查询语言,CqlTemplate是Spring Data Cassandra中的底层数据访问模板 - 它方便地公开与数据操作相关的操作以执行CQL语句。CassandraTemplate构建在底层CqlTemplate之上,提供了一种查询域对象的简单方法,并将对象映射到Cassandra中的持久化数据结构。

让我们从配置开始,然后深入了解使用这两个模板的示例。

2. CassandraTemplate配置

CassandraTemplate在Spring上下文中可用,因为我们的主要Cassandra Spring配置正在扩展AbstractCassandraConfiguration:

然后我们可以在模板中简单地连接 - 无论是通过它的确切类型CassandraTemplate,还是更通用的接口CassandraOperations:

3.使用CassandraTemplate访问数据

让我们在数据访问层模块中使用上面定义的CassandraTemplate来处理数据持久化。

3.1.保存一本新书

我们可以将新书保存到我们的书店:

然后我们可以检查数据库中插入的书的可用性:

我们使用的是选择的QueryBuilder这里,被映射到selectOne()在cassandraTemplate。我们将在CQL查询部分更深入地讨论QueryBuilder。

3.2.保存多本书

我们可以使用列表一次将多本书籍保存到我们的书店:

3.3.更新现有图书

首先插入一本新书:

我们来取出本书:

然后让我们为检索到的书添加一些额外的标签:

3.4.删除已插入的图书

我们来插一本新书:

然后删除这本书:

3.5.删除所有图书

我们现在插入一些新书:

然后删除所有书籍:

4.使用CQL查询进行数据访问

始终可以在数据访问层中使用CQL查询进行数据操作。CQL查询处理由CqlTemplate类执行,允许我们根据需要执行自定义查询。

但是,由于CassandraTemplate类是CqlTemplate的扩展,我们可以直接使用它来执行这些查询。

让我们看一下使用CQL查询操作数据的不同方法。

4.1.使用QueryBuilder

QueryBuilder可用于构建数据库中数据操作的查询。几乎所有的标准操作都可以使用开箱即用的构建块来构建:

如果仔细查看代码片段,您可能会注意到使用了execute()方法而不是相关的操作类型(插入,删除等)。这是因为查询类型由QueryBuilder的输出定义。

4.2.使用PreparedStatements

尽管PreparedStatements可用于任何情况,但通常建议将此机制用于多个插入以进行高速摄取。

一个PreparedStatement的准备只有一次,帮助确保高性能:

4.3.使用CQL语句

我们可以直接使用CQL语句来查询数据,如下所示:

5.结论

在本文中,我们使用Spring Data Cassandra检查了各种数据操作策略,包括CassandraTemplate和CQL查询。

上面的代码片段和示例的实现可以在我的GitHub项目中找到 - 这是一个基于Maven的项目,因此它应该很容易导入和运行。

关注公众号

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181218B06XHD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券