Spring系列学习之Spring Data R2DBC数据访问

英文原文:https://spring.io/projects/spring-data-r2dbc

目录

概述

快速开始

学习

文档

示例


概述

Spring Data R2DBC是更大的Spring Data系列的一部分,可以轻松实现基于R2DBC的存储库。 R2DBC代表Reactive Relational Database Connectivity,它是一个使用反应式驱动程序集成关系数据库的孵化器。 Spring Data R2DBC为R2DBC应用熟悉的Spring抽象和存储库支持。 它可以更轻松地构建在响应式应用程序堆栈中使用关系数据访问技术的Spring驱动的应用程序。

Spring Data R2DBC旨在简化概念。 为了实现这一点,它不提供缓存,延迟加载,后写或ORM框架的许多其他功能。 这使得Spring Data R2DBC成为一个简单,有限,自以为是的对象映射器。

Spring Data R2DBC允许功能方法与您的数据库交互,提供DatabaseClient作为应用程序的入口点。

通过选择数据库驱动程序并创建DatabaseClient实例开始:

PostgreSQL示例:



PostgresqlConnectionFactory connectionFactory = new PostgresqlConnectionFactory(PostgresqlConnectionConfiguration.builder()
		.host(…)
		.database(…)
		.username(…)
		.password(…).build());

DatabaseClient client = DatabaseClient.create(connectionFactory);

Mono<Integer> affectedRows = client.execute()
        .sql("UPDATE person SET name = 'Joe'")
        .fetch().rowsUpdated();

Flux<Person> all = client.execute()
        .sql("SELECT id, name FROM person")
        .as(Person.class)
        .fetch().all();

客户端API提供以下功能:

  •      执行通用SQL并消耗更新计数/行结果。
  •      具有分页和排序的通用SELECT
  •      SELECT具有分页和排序的映射对象。
  •      带参数绑定的通用INSERT
  •      INSERT映射对象。
  •      使用本机语法进行参数绑定。
  •      结果消耗:更新计数,未映射(Map <String,Object>),映射到实体,提取功能。
  •      使用@Query注释方法的反应式存储库。
  •      事务管理。


快速开始


使用Spring Initializr引导您的应用程序。 

学习

文档

每个Spring项目都有自己的; 它详细解释了如何使用项目功能以及使用它们可以实现的功能。

1.0.0 M1 PREReference Doc. API Doc.
1.0.0 SNAPSHOTReference Doc. API Doc.

示例

尝试一些例子:

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Spring Data R2DBCSpring框架为响应式数据库操作提供的模块。R2DBC是Reactive Relational Database Connectivity的缩写,它是一种基于响应式编程模型的数据访问方式。相比传统的阻塞式JDBC,R2DBC允许在异步非阻塞的环境下进行数据库操作。 使用Spring Data R2DBC,你可以通过定义接口和方法来实现对响应式数据库的操作。它提供了一套统一的API,支持常见的关系型数据库(如MySQL、PostgreSQL等)。 以下是一个简单的示例,展示了如何使用Spring Data R2DBC进行数据库操作: ```java import org.springframework.data.annotation.Id; import org.springframework.data.relational.core.mapping.Column; import org.springframework.data.relational.core.mapping.Table; @Table("users") public class User { @Id private Long id; @Column("name") private String name; // Getters and setters } @Repository public interface UserRepository extends ReactiveCrudRepository<User, Long> { Flux<User> findByName(String name); } @Service public class UserService { private final UserRepository userRepository; public UserService(UserRepository userRepository) { this.userRepository = userRepository; } public Flux<User> findUsersByName(String name) { return userRepository.findByName(name); } } ``` 在上述示例中,我们定义了一个User实体类,并使用@Table和@Id注解进行映射。然后创建了一个UserRepository接口,继承自ReactiveCrudRepository,这个接口提供了一些基本的CRUD方法,并支持响应式的返回类型。最后,在UserService中使用UserRepository进行数据库操作。 通过Spring Data R2DBC,你可以使用像Flux和Mono这样的响应式类型来处理数据流,以实现异步非阻塞的数据库操作。这使得你可以更好地利用系统资源,提高系统的响应性能。 希望这个简单的示例能够帮助你理解Spring Data R2DBC的基本用法。如果需要更详细的信息,可以查阅Spring官方文档或参考其他资源。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值