webflux支持mysql数据库_WebFlux系列(十三)MySql应用新增、修改、查询、删除

#Java#Spring#SpringBoot#MySql#reactor#webflux#数据库#新增#修改#查询#删除#

Spring WebFlux Mysql 数据库新增、删除、查询、修改

e96547d863b865ac64384aabe9da2293.png

Employee.java

package com.example.springwebfluxmysql;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import org.springframework.data.annotation.Id;

import org.springframework.data.relational.core.mapping.Table;

@Table("employee")

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Employee {

@Id

private Long id;

private String name;

}

EmployeeController.java

package com.example.springwebfluxmysql;

import lombok.AllArgsConstructor;

import org.springframework.web.bind.annotation.*;

import reactor.core.publisher.Flux;

import reactor.core.publisher.Mono;

@RestController

@AllArgsConstructor

@RequestMapping("/employee")

public class EmployeeController {

private final EmployeeRep employeeRep;

@DeleteMapping("/{id}")

public Mono delete(@PathVariable Long id){

return employeeRep.deleteById(id);

}

@GetMapping("/{id}")

public Mono findById(@PathVariable Long id){

return employeeRep.findById(id);

}

@PutMapping

public Mono update(@RequestBody Employee employee){

return employeeRep.save(employee);

}

@PostMapping

public Mono save(@RequestBody Employee employee){

return employeeRep.save(employee);

}

@GetMapping

public Flux findAll(){

return employeeRep.findAll();

}

}

EmployeeRep.java

package com.example.springwebfluxmysql;

import org.springframework.data.repository.reactive.ReactiveCrudRepository;

public interface EmployeeRep extends ReactiveCrudRepository {

}

MysqlConfigurtion.java

package com.example.springwebfluxmysql;

import com.github.jasync.r2dbc.mysql.JasyncConnectionFactory;

import com.github.jasync.sql.db.mysql.pool.MySQLConnectionFactory;

import com.github.jasync.sql.db.mysql.util.URLParser;

import io.r2dbc.spi.ConnectionFactory;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration;

import java.nio.charset.StandardCharsets;

@Configuration

public class MysqlConfigurtion extends AbstractR2dbcConfiguration {

@Override

public ConnectionFactory connectionFactory() {

String url ="mysql://root:123456@127.0.0.1:3306/test";

return new JasyncConnectionFactory(new MySQLConnectionFactory(URLParser.INSTANCE.parseOrDie(url, StandardCharsets.UTF_8)));

}

}

SpringWebfluxMysqlApplication.java

package com.example.springwebfluxmysql;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;

@SpringBootApplication

@EnableR2dbcRepositories

public class SpringWebfluxMysqlApplication {

public static void main(String[] args) {

SpringApplication.run(SpringWebfluxMysqlApplication.class, args);

}

}

公众号,坚持每天3分钟视频学习

0225b209e5fab697b2f75fbce5702dcf.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值