使用Spring Data R2DBC + Postgres实现增删改查功能,需要完成以下步骤:
- 添加依赖项
在pom.xml文件中添加以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-postgresql</artifactId>
</dependency>
- 配置数据源
在application.properties文件中配置数据源信息:
spring.r2dbc.url=r2dbc:postgresql://localhost:5432/mydb
spring.r2dbc.username=myuser
spring.r2dbc.password=mypassword
spring.r2dbc.pool.initial-size=10
spring.r2dbc.pool.max-size=20
spring.r2dbc.pool.validation-query=SELECT 1
- 定义实体类
定义一个实体类,并使用@Table注解来指定表名和列名。例如:
@Table("users")
public class User {
@Id
private Long id;
private String name;
private Integer age;
// getter and setter
}
- 创建Repository接口
使用Spring Data R2DBC提供的CRUDRepository,创建Repository接口,例如:
public interface UserRepository extends ReactiveCrudRepository<User, Long> {
}
- 使用Repository进行CRUD操作
在需要使用的地方注入UserRepository,即可使用CRUD操作。例如:
@RestController
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/users")
public Flux<User> getUsers() {
return userRepository.findAll();
}
@PostMapping("/users")
public Mono<User> addUser(@RequestBody User user) {
return userRepository.save(user);
}
@PutMapping("/users/{id}")
public Mono<User> updateUser(@PathVariable Long id, @RequestBody User user) {
return userRepository.findById(id)
.flatMap(savedUser -> {
savedUser.setName(user.getName());
savedUser.setAge(user.getAge());
return userRepository.save(savedUser);
});
}
@DeleteMapping("/users/{id}")
public Mono<Void> deleteUser(@PathVariable Long id) {
return userRepository.deleteById(id);
}
}
以上就是使用Spring Data R2DBC + Postgres实现增删改查功能的完整攻略。
以下是两个示例:
- 新增用户
请求方式:POST
请求URL:/users
请求参数:
{
"name": "lisa",
"age": 20
}
返回结果:
{
"id": 1,
"name": "lisa",
"age": 20
}
- 更新用户
请求方式:PUT
请求URL:/users/1
请求参数:
{
"name": "lisa",
"age": 23
}
返回结果:
{
"id": 1,
"name": "lisa",
"age": 23
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Spring Data R2DBC +Postgres实现增删改查功能 - Python技术站