响应式编程——R2DBC

Web、网络、IO(存储)、中间件(Redis、MySQL)

应用开发:

  • 网络
  • 存储:MySQL、Redis
  • Web:Webflux
  • 前端; 后端:Controller -- Service -- Dao(r2dbc;mysql)

数据库:

  • 导入驱动; 以前:JDBC(jdbc、各大驱动mysql-connector); 现在:r2dbc(r2dbc-spi、各大驱动 r2dbc-mysql)
  • 驱动
    • 获取连接
    • 发送SQL、执行
    • 封装数据库返回结果

今日任务:

  • r2dbc原生API:https://r2dbc.io(Reactive Relational Database Connectivity (R2DBC) )
  • boot整合spring data r2dbc:spring-boot-starter-data-r2dbc
  • 三大组件:R2dbcRepository、R2dbcEntityTemplate 、DatabaseClient
  • RBAC权限模型导入,基础CRUD练习;SQL文件在附录
  • 1-1,1-N 关系处理;
  • 扩展:导入接口文档进行测试: 访问 项目/doc.html

1、R2dbc

r2dbc是基于全异步的,响应式的,消息驱动、数据库层面天然支持高并发、高吞吐量

创建表

-- 用户表
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user`(
                           `id` bigint(20) NOT NULL AUTO_INCREMENT,
                           `username` varchar(255)  NOT NULL COMMENT '用户名',
                           `password` varchar(255)   NOT NULL COMMENT '密码',
                           `email` varchar(255)   NOT NULL COMMENT '邮箱',
                           `phone` char(11)   NOT NULL COMMENT '电话',
                           `create_time` datetime(0) NOT NULL COMMENT '创建时间',
                           `update_time` datetime(0) NOT NULL COMMENT '更新时间',
                           PRIMARY KEY (`id`) USING BTREE
) ;

-- 角色表
DROP TABLE IF EXISTS `t_roles`;
CREATE TABLE `t_roles`(
                            `id` bigint(20) NOT NULL AUTO_INCREMENT,
                            `name` varchar(255) NOT NULL COMMENT '角色名',
                            `value` varchar(255)  NOT NULL COMMENT '角色的英文名',
                            `create_time` datetime(0) NOT NULL,
                            `update_time` datetime(0) NOT NULL,
                            PRIMARY KEY (`id`) USING BTREE
) ;

-- 权限表(资源表)
DROP TABLE IF EXISTS `t_perm`;
CREATE TABLE `t_perm`(
                               `id` bigin

你可能感兴趣的:(java)