Cassandra 支持

参考文档的这一部分解释了 Spring Data for Apache Cassandra 提供的核心功能。Spring Data 对 Apache Cassandra 的支持包含广泛的功能:

抽象

Spring Data for Apache Cassandra 允许在 CQL 和实体级别进行交互。

Spring Data for Apache Cassandra 抽象所提供的价值,或许通过下表所示的一系列操作能最好地展现出来。该表显示了 Spring 负责哪些操作,以及作为应用程序开发人员的您负责哪些操作。

表 1. Spring Data for Apache Cassandra - 谁来做什么?
操作 Spring

定义连接参数。

X

打开连接。

X

指定 CQL 语句。

X

声明参数并提供参数值。

X

准备并运行语句。

X

设置循环以遍历结果(如果有)。

X

为每次迭代执行工作。

X

处理任何异常。

X

关闭会话。

X

核心 CQL 支持负责所有低级细节,这些细节可能使 Cassandra 和 CQL 成为一个开发起来乏味的 API。使用映射实体对象可以实现模式生成、对象映射和仓库支持。

选择 Cassandra 数据库访问方法

您可以选择几种方法作为 Cassandra 数据库访问的基础。Spring 对 Apache Cassandra 的支持有多种风格。一旦您开始使用其中一种方法,您仍然可以混合搭配,以包含来自不同方法的特性。以下方法效果良好:

  • CqlTemplateReactiveCqlTemplate 是经典的 Spring CQL 方法,也是最受欢迎的。这是“最低级别”的方法。请注意,像 CassandraTemplate 这样的组件在底层使用 CqlTemplate

  • CassandraTemplate 封装了一个 CqlTemplate,以提供查询结果到对象的映射,并使用 SELECTINSERTUPDATEDELETE 方法而不是编写 CQL 语句。这种方法提供了更好的文档和易用性。

  • ReactiveCassandraTemplate 封装了一个 ReactiveCqlTemplate,以提供查询结果到对象的映射,并使用 SELECTINSERTUPDATEDELETE 方法而不是编写 CQL 语句。这种方法提供了更好的文档和易用性。

  • 仓库抽象允许您在数据访问层中创建仓库声明。Spring Data 仓库抽象的目标是显著减少实现各种持久化存储的数据访问层所需的样板代码量。

对于大多数面向数据的任务,您可以使用 [Reactive|Async]CassandraTemplateRepository 支持,它们都使用丰富的对象映射功能。[Reactive|Async]CqlTemplate 通常用于增加计数器或执行临时 CRUD 操作。[Reactive|Async]CqlTemplate 还提供回调方法,可以轻松获取低级 API 对象,例如 com.datastax.oss.driver.api.core.CqlSession,它允许您直接与 Cassandra 通信。Spring Data for Apache Cassandra 在各种 API 中的对象命名约定与 DataStax Java 驱动程序中的命名约定保持一致,以便熟悉它们,并且您可以将现有知识映射到 Spring API。

© . This site is unofficial and not affiliated with VMware.