From 5000b79a0a695dec28db85929e200796c1885b6f Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Wed, 27 Nov 2019 00:16:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20webflux=20mysql=20+=20?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab-27/lab-27-webflux-r2dbc/pom.xml | 1 + .../springwebflux/config/DatabaseConfiguration.java | 9 ++++++++- .../src/main/resources/application.yaml | 1 + .../src/main/resources/sql/users.sql | 8 ++++++++ .../lab-27-webflux-r2dbc/target/classes/application.yaml | 1 + 5 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql diff --git a/lab-27/lab-27-webflux-r2dbc/pom.xml b/lab-27/lab-27-webflux-r2dbc/pom.xml index 4ef33eb1..6bb7a748 100644 --- a/lab-27/lab-27-webflux-r2dbc/pom.xml +++ b/lab-27/lab-27-webflux-r2dbc/pom.xml @@ -27,6 +27,7 @@ 0.1.0.M2 + com.github.jasync-sql jasync-r2dbc-mysql diff --git a/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java b/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java index 21eb76d5..a1708377 100644 --- a/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java +++ b/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java @@ -6,13 +6,15 @@ import io.r2dbc.spi.ConnectionFactory; import org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.r2dbc.connectionfactory.R2dbcTransactionManager; +import org.springframework.transaction.ReactiveTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import java.net.URI; import java.net.URISyntaxException; @Configuration -@EnableTransactionManagement +@EnableTransactionManagement // 开启事务的支持 public class DatabaseConfiguration { @Bean @@ -29,4 +31,9 @@ public class DatabaseConfiguration { return new JasyncConnectionFactory(new MySQLConnectionFactory(configuration)); } + @Bean + public ReactiveTransactionManager transactionManager(R2dbcProperties properties) throws URISyntaxException { + return new R2dbcTransactionManager(this.connectionFactory(properties)); + } + } diff --git a/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml b/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml index 85444302..11684d15 100644 --- a/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml +++ b/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml @@ -1,4 +1,5 @@ spring: + # R2DBC 配置,对应 R2dbcProperties 配置类 r2dbc: url: mysql://47.112.193.81:3306/lab-27-webflux-r2dbc username: lab-27-webflux-r2dbc diff --git a/lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql b/lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql new file mode 100644 index 00000000..02a9b8eb --- /dev/null +++ b/lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql @@ -0,0 +1,8 @@ +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号', + `username` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账号', + `password` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`id`), + UNIQUE KEY `idx_username` (`username`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; diff --git a/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml b/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml index 85444302..11684d15 100644 --- a/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml +++ b/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml @@ -1,4 +1,5 @@ spring: + # R2DBC 配置,对应 R2dbcProperties 配置类 r2dbc: url: mysql://47.112.193.81:3306/lab-27-webflux-r2dbc username: lab-27-webflux-r2dbc