mariadb/mysql R2DBC方式接入spring boot(一)

start.spring.io 最近可以直接选取mariadb接入R2DBC了,大致需要加入以下几个包:

 <!--引入r2dbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-r2dbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mariadb</groupId>
            <artifactId>r2dbc-mariadb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--<dependency>
            <groupId>io.r2dbc</groupId>
            <artifactId>r2dbc-spi</artifactId>
        </dependency>-->
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
        </dependency>
        <!--连接池-->
        <dependency>
            <groupId>io.r2dbc</groupId>
            <artifactId>r2dbc-pool</artifactId>
        </dependency>

数据库配置(mysql 稍微自己改一下):

r2dbc:
    username: root
    password: ******
    url: r2dbc:mariadb://localhost:1234/dataname
    #initialization-mode: always

推荐创建一个template Bean去操作数据库,当然也可以不用bean

import io.r2dbc.spi.ConnectionFactory
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate

@Configuration
class MariadbConfig(
    @Autowired val connectionFactory: ConnectionFactory
){

    @Bean
    fun databaseTemplate () = R2dbcEntityTemplate(connectionFactory)

}

老版本使用DatabaseClient(spring-data-r2dbc-1.1.0.RELEASE.jar),
新版本的DatabaseClient(spring-r2dbc-5.3.3.jar)下已经没有insert等方法,但是有一个sql方法执行sql语句。
所以,新版本可使用template

class controller(
    @Autowired val template: R2dbcEntityTemplate
) { 
 template.databaseClient.sql() //创建表
 template.insert()
 template.update()
 template.delete()
 ...
 }

mariadb/mysql R2DBC(CRUD)方式接入spring boot (二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值