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