R2dbc-MySQL&Redis的简单使用

本文涉及到的为MySQL和Redis

配置数据库信息

在这里插入代码片
spring:
	r2dbc:
# r2dbc:driver[:protocol]}://[user:password@]host[:port]
		url: ********
	redis:
		host: *******
		port: *******
		password: ********

注入组件

@Configurable
public class R2dbcConfig {
    @Value("${spring.r2dbc.url}")
    private String url;

    @Bean
    public R2dbcEntityTemplate reactiveMySQLTemplate() {
        ConnectionFactory factory = ConnectionFactories.get(url);
        return new R2dbcEntityTemplate(factory);
    }

    @Bean
    public ReactiveStringRedisTemplate reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) {
        return new ReactiveStringRedisTemplate(factory);
    }
}

该接口类似于MyBatis的BaseMapper接口,提供了基本的crud方法,还可以根据命名规则实现其他简单方法

Repository
@Repository
public interface UserRepository extends R2dbcRepository<User, Long> {
  Flux<User> findByCollege(String college);

  @Query("select * from user where age = :age")
  Flux<User> findByAge(@Param("age") Integer age);

  @Modifying
  @Query("update user set age = :age where id = :id")
  Mono<Void> updateAge(@Param("age") Integer age, @Param("id") Long id);
}
实体类
@Data
@Table("user")
public class User implements Serializable {

    private static final long serialVersionUID = -5895912527692875136L;
    @Id
    private Long id;
    private String name;
    private Integer age;
    private String college;
}

版权声明:本文为qq_36865778原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。