原标题:Spring认证|Apache Cassandra 的 Spring 数据 Apache Cassandra NoSQL 数据库为寻求处理高速、大容量和可变数据流的解决方案的团队提供了许多新功能...特征 基于通用 Spring Data 接口构建存储库 支持同步、反应式和异步数据操作 支持基于 XML 的密钥空间创建和 CQL 表创建 JavaConfig 和 XML 支持所有集群和会话功能 异常转换为熟悉的...Spring Data 为 Apache Cassandra 抽象提供的价值可能最好通过下表中列出的操作序列来展示。...为 Cassandra 数据库访问选择一种方法 您可以从多种方法中进行选择,以用作 Cassandra 数据库访问的基础。Spring 对 Apache Cassandra 的支持有多种形式。...Spring Data 的存储库抽象的目标是显着减少为各种持久性存储实现数据访问层所需的样板代码量。 ry Abstraction 允许您在数据访问层中创建存储库声明。
在数据库连接中使用集群 2. 创建数据库分区schemas 3. 启用数据库分区 4....实例的数据导入相同实例的不同表中 ---- 本文介绍Kettle 8.3中数据库分区的使用。...在数据库连接中使用集群 在Kettle的数据库连接对话框中,可定义数据库分区,如图1所示。 ? 图1 在“集群”标签,勾选“使用集群”,然后定义三个分区。...图15 如果将图12中的数据库连接改为mysql_172.16.1.105,连接172.16.1.105的test.t1表。...图25 在数据库连接中定义分区时需要注意一点,分区ID应该唯一,如果多个分区ID相同,则所有具有相同ID的分区都会连接到第一个具有该ID的分区。
Boot3 应用系统开发过程中,使用了官方的spring-boot-starter-data-redis依赖来操作Redis单节点和集群。...在开发测试时偷了个懒,没有搭建集群。当连接地址替换为集群时,发现客户端不能直接操作集群,顿时懵了!...查了官网资料,也仅有寥寥几行,网上目前还是大量使用Jedis客户端来连接操作Redis集群,Lettuce相关的资料也极为稀少。...template.afterPropertiesSet(); return template; } lettuce_template 这个 Bean 就能成功读取配置文件中的...三 总结 1、单节点与集群的初始化方式是不一样的,这一点需要牢记,Bean 不能直接套用,官网的 RedisTemplate 是针对单节点的; 2、Bean注入时尽量指定名称,避免冲突。
Spring Data 为 Apache Cassandra 抽象提供的值可能最好通过下表中列出的操作序列来展示。该表显示了 Spring 负责哪些操作以及哪些操作是您(应用程序开发人员)的责任。...异常转换为 Spring 的可移植数据访问异常层次结构。 与Spring 的 转换服务集成的功能丰富的对象映射。 基于注释的映射元数据可扩展以支持其他元数据格式。...Spring Data for Apache Cassandra 对各种 API 中的对象使用与 DataStax Java 驱动程序中的对象一致的命名约定,以便它们熟悉,并且您可以将现有知识映射到 Spring...9.3.使用 Spring 连接到 Cassandra 在 Spring 中使用 Apache Cassandra 时的首要任务之一是 com.datastax.oss.driver.api.core.CqlSession...您可以通过使用基于 Java 的 bean 元数据或使用基于 XML 的 bean 元数据来实现。这些将在以下各节中讨论。
外部化连接属性 要外部化连接属性,您应该首先创建一个属性文件,其中包含连接到 Cassandra 所需的信息。contactpoints和keyspace是必填字段。...=showcase 在接下来的两个示例中,我们使用 Spring 将这些属性加载到 Spring 上下文中。...这些元素都使用默认的 bean 名称来保持配置代码的整洁和可读。 虽然前面的示例显示了配置 Spring 以连接到 Cassandra 是多么容易,但还有许多其他选项。...这种结构在 Spring Web 应用程序中很常见,但可以更普遍地应用。 使用表和用户定义类型的模式管理使用 Spring Data Cassandra 的内置模式生成器初始化键空间。...9.4.3.表和用户定义的类型 Spring Data for Apache Cassandra 使用适合您的数据模型的映射实体类来处理数据访问。
14.4.基于元数据的映射 要充分利用 Spring Data for Apache Cassandra 支持中的对象映射功能,您应该使用注释对映射的域对象进行@Table注释。...复合主键可能需要稍微不同的数据模型。 14.4.1.使用主键 Cassandra 需要至少一个 CQL 表的分区键字段。一张表可以额外声明一个或多个集群键字段。...也就是说,复合主键可以由多个分区键、一个分区键和一个集群键或多个主键字段组成。 复合键可以通过 Spring Data for Apache Cassandra 以两种方式表示: 嵌入到一个实体中。...这使您可以使用 Spring 表达式语言语句来转换在数据库中检索到的键值,然后再使用它来构造域对象。...映射元数据基础结构在独立的 spring-data-commons 项目中定义,该项目与技术和数据存储无关。 以下示例显示了更复杂的映射: 示例 114.
11.3.1.预测 Spring Data 查询方法通常返回存储库管理的聚合根的一个或多个实例。但是,有时可能需要根据这些类型的某些属性创建投影。...Spring Data 提供什么方法来实现这一目标?本章的其余部分回答了这个问题。...第二个更灵活的选择是在 Spring bean 中实现自定义逻辑,然后从 SpEL 表达式调用它,如以下示例所示: 示例 83....如果支持值是null,则 getter 方法返回所用包装器类型的空表示。 基于类的预测 (DTO) 定义投影的另一种方法是使用值类型 DTO(数据传输对象),这些 DTO 包含应该检索的字段的属性。...您可以使用Project Lombok显着简化 DTO 的代码,它提供了一个@Value注解(不要与@Value前面的接口示例中显示的Spring 的注解混淆)。
14.8.3.存储特定的 EntityCallbacks Spring Data for Apache Cassandra 使用EntityCallbackAPI 来提供审计支持并对以下回调做出反应。...尽管 Java 不允许您在其类型系统中表达空安全性,但 Spring Data API 使用包中声明的JSR-305工具友好注释进行了注释org.springframework.lang。...请参阅存储库方法的空处理如何将空安全应用于 Spring 数据存储库。...Spring Data for Apache Cassandra 提供以下扩展: 为具体化泛型的支持CassandraOperations(包括异步和反应性的变体), CqlOperations(包括异步和反应性变体...Flow suspend fun findAllByFirstname(id: String): List } 协程存储库建立在反应式存储库上,以通过 Kotlin 的协程公开数据访问的非阻塞特性
转换器CassandraConverter Spring Data for Apache Cassandra Java 配置提供了一种注册 SpringConverter实例的便捷方法: MappingCassandraConverter...由于基于 Spring 的应用程序上下文事件基础结构,其他产品(例如 Spring Integration)可以轻松接收这些事件,因为它们是基于 Spring 的应用程序中众所周知的事件机制。...onBeforeDelete: 在CassandraTemplate.delete(…)从数据库中删除行之前的操作中调用。...onAfterDelete:CassandraTemplate.delete(…)从数据库中删除行后在操作中调用。...onAfterConvert:将从数据库中检索到的行转换为 POJO 后CassandraTemplate.select(…),在.slice(…)、 和.stream(…)方法中调用。
从编程模型的角度来看,需要考虑以下几点: 应该保留哪个属性(默认为所有声明的属性)?您可以通过使用 注释这些属性来排除属性@Transient。 如何表示数据存储中的属性?...Kotlin 数据类的属性填充 在 Kotlin 中,默认情况下所有类都是不可变的,并且需要明确的属性声明来定义可变属性。...Spring Data for Apache Cassandra 支持 Apache Cassandra 提供的多种类型。...下表将 Spring Data 类型映射到 Cassandra 类型: 每个支持的类型映射到默认的 Cassandra 数据类型。...此外,通过创建您自己的实例,您可以注册 SpringConverter实例以用于将特定类映射到数据库或从数据库映射。以下示例配置类设置 Cassandra 映射支持: Example 105.
要激活它,请将 Spring Data for Apache Cassandra JAR 放入您的类路径中。...它建立在Cassandra Repositories 中解释的核心存储库基础设施之上,因此您应该对那里解释的基本概念有很好的理解。...12.2.用法 要访问存储在 Apache Cassandra 中的域实体,您可以使用 Spring Data 复杂的存储库支持,这大大简化了 DAO 的实现。...在测试用例(测试方法)中,我们使用存储库来查询数据存储。我们调用请求所有Person实例的存储库查询方法。...12.3.特征 Spring Data 的 Reactive Cassandra 支持与对命令式存储库的支持具有相同的功能集。
在使用spring-data-cassandra实体模型时有时为了减少一些类同时又可以传递一些非数据库字段的信息,这时我们可以使用@Transient注解来实现,但需要注意的使用的@Transient注解并不是...javax.persistence包下的@Transient注解,而是org.springframework.data.annotation包下的@Transient注解,该注解是spring-data-commons...下的注解,使用transient关键字在spring-data-cassandra下也不能实现“实体类中字段不与数据库表映射的功能”, 具体如下所示: /** * 该数据是否是整形 */ @Transient
13.1.基本 Spring Data 提供了复杂的支持,以透明地跟踪谁创建或更改了实体以及更改发生的时间。要从该功能中受益,您必须为实体类配备审计元数据,这些元数据可以使用注释或通过实现接口来定义。...审计元数据不一定需要存在于根级实体中,但可以添加到嵌入式实体中(取决于实际使用的存储),如下面的截图所示。 示例 95....13.2.Cassandra 的一般审计配置 要激活审计功能,请将 Spring Data for Apache Cassandraauditing命名空间元素添加到您的配置中,如以下示例所示: 示例...财产人口内部结构 与我们在对象构造中的优化类似,我们也使用 Spring Data 运行时生成的访问器类与实体实例进行交互。...使用所示设计,数据库值将胜过默认值,因为 Spring Data 使用唯一声明的构造函数。
; 同所有的Spring自动装配,这是假定只有一种类型的豆CassandraOperations中ApplicationContext。...、更新和删除域对象并将这些对象映射到 Cassandra 中管理的表。...随着类型的添加或更改,Apache Cassandra 模块的 Spring Data 继续运行而无需更改。有关当前类型映射矩阵,请参阅CQL 数据类型 和“数据映射和类型转换”。...可以使用映射元数据覆盖存储对象的表。 插入或更新时,id必须设置该属性。Apache Cassandra 无法生成 ID。 以下示例使用保存操作并检索其内容: 示例 64....调用方法会创建新的不可变(中间)Update对象。 9.9.4.删除行的方法 您可以使用以下重载方法从数据库中删除对象: boolean 删除 (Query query, Class<?
映射到 Spring 的一致数据访问异常层次结构背后的动机 是让您编写可移植和描述性的异常处理代码,而无需针对特定的 Cassandra 异常进行编码和处理。...Spring 的所有数据访问异常都继承自 DataAccessException该类,因此您可以确保可以在单个 try-catch 块中捕获所有与数据库相关的异常。...9.7.控制 Cassandra 连接 应用程序使用CqlSession对象连接到 Apache Cassandra 。...SessionFactory是 Apache Cassandra 的 Spring Data 的一部分,是一个通用的连接工厂。它允许容器或框架对应用程序代码隐藏连接处理和路由问题。...另一个核心功能CassandraTemplate是将 Cassandra Java 驱动程序中抛出的异常异常转换为 Spring 的可移植数据访问异常层次结构。有关更多信息,请参阅异常翻译部分 。
Spring Data for Apache Cassandra 对各种 API 中的对象使用与 DataStax Java 驱动程序中的对象一致的命名约定,以便立即熟悉它们,并且您可以将现有知识映射到...快速设置和引导工作环境的一种简单方法是在STS 中创建基于 Spring 的项目或使用Spring Initializer。 首先,您需要设置一个正在运行的 Apache Cassandra 服务器。...10.3.使用 Spring 连接到 Cassandra 在 Spring 中使用 Apache Cassandra 时的首要任务之一是 com.datastax.oss.driver.api.core.CqlSession...您可以通过使用基于 Java 的 bean 元数据或使用基于 XML 的 bean 元数据来实现。这些将在以下各节中讨论。...对于那些不熟悉如何配置使用基于Java bean的元数据,而不是基于XML的元数据Spring容器,请参阅参考文档的高级介绍 这里 还有详细的文档在这里。
本文,我们将连接数据库 MySql ~ Demo 的相关环境如下: java 版本 11 Spring Boot 版本 2.7.12 基于 mac m1 - macOS Monterrey 版本 12.4...、数据库和表 这里我们使用 Navicat 工具创建 MySql 连接名、数据库和表。...创建 MySql 数据库 然后,我们鼠标右击连接名 jimmy_test 创建数据库: 我们创建了名为 mydb_01 的数据库。...这里我安装的是 mysql 版本是 8.0.33,所以在 spring boot 的 pom.xml 中添加该依赖如下: mysql 然后,我们在 src/main/resources/application.properties 文件中设置连接的数据库信息
Cassandra 的存储库支持建立在“使用 Spring 数据存储库”中解释的核心存储库支持之上。...11.1.用法 要访问存储在 Apache Cassandra 中的域实体,您可以使用 Spring Data 复杂的存储库支持,这大大简化了 DAO 的实现。...默认情况下,存储库与一个CassandraTemplate名为的Spring bean 连接cassandraTemplate,因此cassandra-template-ref如果您偏离此约定,您只需显式配置...前面的示例使用 Spring 的单元测试支持创建了一个应用程序上下文,它执行基于注解的依赖注入到测试类中。在测试用例(测试方法)中,我们使用存储库来查询数据存储。...我们调用请求所有Person实例的存储库查询方法。 11.2.查询方法 您通常在存储库上触发的大多数数据访问操作都会导致对 Apache Cassandra 数据库执行查询。
映射到 Spring 的一致数据访问异常层次结构背后的动机 是让您编写可移植和描述性的异常处理代码,而无需针对特定的 Cassandra 异常进行编码和处理。...Spring 的所有数据访问异常都继承自 DataAccessException该类,因此您可以确保可以在单个 try-catch 块中捕获所有与数据库相关的异常。...它提供了丰富的功能集来与数据库交互。该模板提供方便的数据访问操作来创建、更新、删除和查询 Cassandra,并提供域对象和 Cassandra 表行之间的映射。...Cassandra Java 驱动程序抛出的异常被转换为 Spring 的可移植数据访问异常层次结构。有关更多信息,请参阅“异常翻译”。...reactiveCassandraOperations; 像所有的春天自动连接,这是假定只有一个bean类型的 ReactiveCassandraOperations中ApplicationContext
在Spring Boot中,通过AbstractRoutingDataSource实现多数据源连接是一种常见的做法。这种技术允许你在运行时动态地切换数据源,从而支持对多个数据库的操作。...Spring Boot中配置和使用AbstractRoutingDataSource来实现多数据源连接。 1....添加依赖 pom.xml文件的依赖,比如Spring Data JPA和数据库驱动: org.springframework.boot...配置数据源属性 在application.yml或application.properties中配置多个数据源的信息。...配置多数据源 将数据源配置到Spring上下文中,并指定默认的数据源。
领取专属 10元无门槛券
手把手带您无忧上云