Java#Spring#SpringBoot#MySql#reactor#webflux#數(shù)據(jù)庫#新增#修改#查詢#刪除#
Spring WebFlux Mysql 數(shù)據(jù)庫新增、刪除间校、查詢、修改
視頻講解 : https://www.bilibili.com/video/av84439890/
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<Employee> findAll(){
return employeeRep.findAll();
}
}
EmployeeRep.java
package com.example.springwebfluxmysql;
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
public interface EmployeeRep extends ReactiveCrudRepository<Employee,Long> {
}
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分鐘視頻學習