42岁程序员面试,R2DBC


 <!-- lombok -->

        <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

        </dependency>

        <!-- r2dbc spring data-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-r2dbc</artifactId>

        </dependency>

        <!-- r2dbc mysql 库-->

        <dependency>

            <groupId>dev.miku</groupId>

            <artifactId>r2dbc-mysql</artifactId>

            <version>0.8.2.RELEASE</version>

        </dependency>

        <!-- r2dbc-pool -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-r2dbc</artifactId>

            <version>2.3.0.RELEASE</version>

        </dependency>

        <!-- webFlux -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-webflux</artifactId>

        </dependency> 

application配置文件


### r2dbc

spring:

  r2dbc:

    url: r2dbc:mysql://localhost/r2dbc?useUnicode=true&characterEncoding=UTF-8

    username: root

    password: root

    pool:

      enabled: true

      max-size: 10

      initial-size: 10

      validation-query: select 1 

表结构


DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`  (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

  `age` int(11) NULL DEFAULT NULL,

  `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

  `phone_number` int(11) NULL DEFAULT NULL,

  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;



-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES (1, 'admin', 12, '123@163.com', 145448546);

INSERT INTO `user` VALUES (2, 'tom', 18, 'tom@163.com', 12346789);

INSERT INTO `user` VALUES (5, 'jerry', 25, 'jerry@163.com', 154646126);



SET FOREIGN_KEY_CHECKS = 1; 

实体类


/**

 * @author ZhaoJiu

 * @since: 2021/7/22

 * @desc: 用户实体类

 */

@Table("user")

@Data

public  class User {

   @Id

   private String id;

   private String name;

   private Integer age;

   private String email;

   private Integer phoneNumber;



} 

JPA中的Repository


/**

 * @author ZhaoJiu

 * @since: 2021/7/22

 * @desc:

 */

public interface PersonRepository extends R2dbcRepository<User,String> {



} 

最终代码


/**

 * @author ZhaoJiu

 * @since: 2021/7/22

 * @desc: r2dbc 操作mysql CRUD

 */

@RestController

@RequestMapping("user")

public class UserController {



    @Resource

    PersonRepository repository;



    /**

     * 修改用户

     *

     * @param user

     * @return

     */

    @PutMapping("/update")

    public Mono<ResponseEntity<String>> update(@RequestBody User user) {

        return repository.findById(user.getId())

                .flatMap(u -> repository.save(user)

                        .then(

                                Mono.just(new ResponseEntity<>("修改成功", HttpStatus.OK))

                        ))

                .defaultIfEmpty(new ResponseEntity<>("用户未找到", HttpStatus.NOT_FOUND));

    }



    /**

     * 根据id查询

     *

     * @param id 用户id

     * @return Mono

     */

    @GetMapping("{id}")

    public Mono<User> findById(@PathVariable String id) {

        return repository.findById(id);

# **Java高频面试专题合集解析:**

![阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等](https://img-blog.csdnimg.cn/img_convert/622f5c57cda58627218db5aab7059d42.png)

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,在这也是免费分享给那些有需要的朋友,其中囊括了**Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!**

**这些资料都以整理成了PDF文档,如果有需要可以[狂戳这里免费下载](https://gitee.com/vip204888/java-p7)即可!**


![阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等](https://img-blog.csdnimg.cn/img_convert/00b17269e8c4a31507b4ef7b54e2f2f7.png)

**更多Java架构进阶资料展示**

![阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等](https://img-blog.csdnimg.cn/img_convert/17e3b6d9ebdf53818f7a22417ea27391.png)

![阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等](https://img-blog.csdnimg.cn/img_convert/b475b62fd215abeb349563996312e253.png)

dis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!**

**这些资料都以整理成了PDF文档,如果有需要可以[狂戳这里免费下载](https://gitee.com/vip204888/java-p7)即可!**


[外链图片转存中...(img-kGXtaGqa-1628067027516)]

**更多Java架构进阶资料展示**

[外链图片转存中...(img-iPLcotMZ-1628067027518)]

[外链图片转存中...(img-CVzSnGb0-1628067027520)]

![阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等](https://img-blog.csdnimg.cn/img_convert/19acd31c6a08f52c746af8e16641d2de.png)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值