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