1. ReactiveCrudRepository
ReactiveCrudRepository
是 Spring Data 提供的一个接口,用于执行基本的 CRUD 操作。它利用反应式编程模型,使得数据操作异步且非阻塞。
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
import reactor.core.publisher.Mono;
// 定义实体类
public class User {
private Long id;
private String name;
private String email;
// Getters 和 Setters
}
// 定义 Repository 接口
public interface UserRepository extends ReactiveCrudRepository<User, Long> {
Mono<User> findByEmail(String email);
}
// 使用 UserRepository
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public Mono<User> getUserByEmail(String email) {
return userRepository.findByEmail(email);
}
}
自定义sql的方式
2. R2dbcEntityTemplate
R2dbcEntityTemplate
提供了比 ReactiveCrudRepository
更加灵活的方式来与数据库交互。它可以执行自定义查询和更新操作。
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
import org.springframework.data.relational.core.query.Criteria;
import org.springframework.data.relational.core.query.Query;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
@Service
public class UserService {
private